Hallo,
Das Problem ist nur, daß hierbei doch auch das Bild zerstört wird,
Warum meinst Du das?
my $basename = basename($flyer);
Tut mir leid, aber wenn ich es so mache, kann es der IE zwar speichern, nur die Grafiken sind dann .jpg Dateien mit 0 Byte (bei allen Browsern) :(
if ($query->param('upload')) {
my $basename = $query->param('flyer');
$flyer = basename($basename);
.
.
.
Da sollte eigentlich nichts herumgepopelt werden.
BTW: hast Du das Source-Fragment versucht einzubinden?
Das Source-Fragment ?
Was habe ich eigentlich noch für Optionen ?
Wich damals schon sagte, könntest Du den Inhalt der Datei auch in den Speicher laden. SO groß sollten die Images ja gar nicht sein, daß das ein Problem ergäbe.
Hmmm wie genau müsste ich das machen und wie würde das mein Problem lösen ?
Noch etwas beim schnellen Hinsehen.
Man kann auch Rückgabewerte bei Funktionen verwenden. chkflyer() wäre IMHO der ideale Kanditat für so etwas.
my($error) = &chkflyer($flyer);
&anfang();
if($error eq '') {
&saveflyer($flyer);
&success($flyer);
}
else {
&eingabe();
&error($error);
}
&ende();
sub chkflyer{
my($flyer) = shift;
return "<li>Es wurde kein Pfad angegeben.</li>\n" if ($flyer eq '');
return "<li>Dieses Dateiformat ist ungültig. (*.jpg, *.gif oder *.png)</li>\n" if (($flyer ne '') && ($flyer !~ /^.+?.gif$|^.+?.jpg$|^.+?.png$/));
[...]
#hier noch die 'gute nachricht'
return '';
}
Hmmm ok das sieht besser aus, als meins, aber um den Feinschliff kümmere ich mich später :)
$xNeTworKx.