Revision 1954092b
Von Sven Schöling vor fast 13 Jahren hinzugefügt
SL/Request.pm | ||
---|---|---|
103 | 103 |
substr $line, $-[0], $+[0] - $-[0], ""; |
104 | 104 |
} |
105 | 105 |
|
106 |
$previous = _store_value($filename ? $target : $temp_target, $name, '') if ($name); |
|
107 |
$temp_target->{FILENAME} = $filename if ($filename); |
|
106 |
$previous = _store_value(defined $filename ? $target : $temp_target, $name, '') if ($name);
|
|
107 |
$temp_target->{FILENAME} = $filename if (defined $filename);
|
|
108 | 108 |
|
109 | 109 |
# for multiple uploads: save the attachments in a SL/Mailer like structure |
110 |
if ($name && $filename) { |
|
110 |
if ($name && defined $filename) {
|
|
111 | 111 |
_store_value($target, "ATTACHMENTS.$name.data", $previous); |
112 | 112 |
_store_value($temp_target, "ATTACHMENTS.$name.filename", $filename); |
113 | 113 |
} |
Auch abrufbar als: Unified diff
filename checks müssen auf defined sein, weil der dateiname auch leer sein kann.
Hintergrund: Wenn bei einem fileupload in einem [+] array die letzte Zeile leer
ist, wird der Dateiname leer gelassen. Dadurch wurde die Dateizeile
fälschlicherweise ins target einsortiert und hat dort die letzte Zeile der
echten Uploads überschrieben.