]> wagnertech.de Git - kivitendo-erp.git/commitdiff
File::Temp für Erzeugung temporärer Dateinamen nutzen
authorMoritz Bunkus <moritz@bunkus.org>
Mon, 9 Jan 2012 14:58:13 +0000 (15:58 +0100)
committerMoritz Bunkus <moritz@bunkus.org>
Mon, 9 Jan 2012 14:58:13 +0000 (15:58 +0100)
Fix für Bug 1747.

SL/Form.pm
bin/mozilla/ustva.pl

index 5393c4719265061215276f668942c0dc450e5d31..f100b8c905053ef81610a8463d0a906bc4a7b096 100644 (file)
@@ -1094,19 +1094,16 @@ sub parse_template {
 
   # OUT is used for the media, screen, printer, email
   # for postscript we store a copy in a temporary file
-  my $fileid = time;
-  my $prepend_userspath;
-
-  if (!$self->{tmpfile}) {
-    $self->{tmpfile}   = "${fileid}.$self->{IN}";
-    $prepend_userspath = 1;
-  }
-
-  $prepend_userspath = 1 if substr($self->{tmpfile}, 0, length $userspath) eq $userspath;
-
-  $self->{tmpfile} =~ s|.*/||;
-  $self->{tmpfile} =~ s/[^a-zA-Z0-9\._\ \-]//g;
-  $self->{tmpfile} = "$userspath/$self->{tmpfile}" if $prepend_userspath;
+  my ($temp_fh, $suffix);
+  $suffix =  $self->{IN};
+  $suffix =~ s/.*\.//;
+  ($temp_fh, $self->{tmpfile}) = File::Temp::tempfile(
+    'lx-office-printXXXXXX',
+    SUFFIX => '.' . ($suffix || 'tex'),
+    DIR    => $userspath,
+    UNLINK => 1,
+  );
+  close $temp_fh;
 
   if ($template->uses_temp_file() || $self->{media} eq 'email') {
     $out = $self->{OUT};
@@ -1152,7 +1149,7 @@ sub parse_template {
       $mail->{charset} = $::lx_office_conf{system}->{dbcharset} || Common::DEFAULT_CHARSET;
       $mail->{to} = $self->{EMAIL_RECIPIENT} ? $self->{EMAIL_RECIPIENT} : $self->{email};
       $mail->{from}   = qq|"$myconfig->{name}" <$myconfig->{email}>|;
-      $mail->{fileid} = "$fileid.";
+      $mail->{fileid} = time() . '.' . $$ . '.';
       $myconfig->{signature} =~ s/\r//g;
 
       # if we send html or plain text inline
index c455740be8e37d21ed6d8fb90365898f70595c73..a3c464211291196fe8a730d0650d7b4379790b0e 100644 (file)
@@ -848,7 +848,6 @@ sub generate_ustva {
       #file suffix
       $file .= '.xml';
       $file =~ s|.*/||;
-      $form->{tmpfile} = "$::lx_office_conf{paths}{userspath}/$file";
 
       $form->{attachment_filename} = $file;
 
@@ -894,11 +893,9 @@ sub generate_ustva {
       # Define serveral filenames
       $form->{IN} = 'taxbird.txb';
 
-      $form->{attachment_filename} = "USTVA-" . $form->{period}
-      . sprintf("%02d", $form->{year} % 100) . ".txb";
+      $form->{attachment_filename} = "USTVA-" . ($form->{period} * 1) . sprintf("%02d", $form->{year} % 100) . ".txb";
 
       $form->{attachment_filename} =~ s|.*/||;
-      $form->{tmpfile} = "$::lx_office_conf{paths}{userspath}/" . $form->{attachment_filename};
 
       # TODO: set Output to UTF-8 or system Preference
       #$form->{"iconv"} = Text::Iconv->new($myconfig{dbcharset}, "UTF-8");