Hallo,
Es wurde mir hierbei empfohlen File::basename zu verwenden.
Ich kann mich erinnern;-)
Das Problem ist nur, daß hierbei doch auch das Bild zerstört wird,
Warum meinst Du das?
my $basename = basename($flyer);
Da sollte eigentlich nichts herumgepopelt werden.
BTW: hast Du das Source-Fragment versucht einzubinden?
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.
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 '';
}
Naja, so in etwa.
Grüße
Klaus