Klaus Mock: Probleme mit Uploadscript (2)

Beitrag lesen

Hallo,

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);

nein, hab' mich anscheinend etwas unglücklich ausgedrückt, mein Fehler:

my $flyer = $query->param('flyer');

in $flyer ist zum einen der Dateiname(inkl. allfälligem Pfad ->IE)

zu finden, zum anderen ist es auch als Dateihandle zu verwenden.

my $orig_filename = basename($flyer);

in $orig_filename steht jetzt nur der Dateiname, ohne Pfad

$flyer wird jetzt als Dateiname gebraucht, aber nicht verändert

open(OUT, ">$upload_dir/$orig_filename") or die "nix da mit schreiben $!";
binmode(OUT);
print OUT while(<$flyer>);

$flyer wird jetzt als Dateihandle gebraucht, was auch funktionieren

(äh funzen) sollte, da wir ja oben keine Veränderung am

Variableninhalt von $flyer durchgeführt haben.

close(OUT);

Da sollte eigentlich nichts herumgepopelt werden.
BTW: hast Du das Source-Fragment versucht einzubinden?

Das Source-Fragment ?

Jenes, welches ich bei dem letzten Thread gepostet habe, und das jetzt sicher schon im Archiv ist.

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 ?

Steht eigentlich auch im letzten Thread. Du weißt schon, der der jetzt schon im Archiv sein müßte;-)

my  @dateiinhalt = $flyer;
my $orig_filename = basename($flyer);
open(OUT, ">$upload_dir/$orig_filename") or die "nix da mit schreiben $!";
binmode(OUT);
print OUT @dateiinhalt;
close(OUT);

Wie war das doch mit dem 'TIMTARITATIM' oder so, ich merk mir das nie:-(

Man kann auch Rückgabewerte bei Funktionen verwenden. chkflyer() wäre IMHO der ideale Kanditat für so etwas.
Hmmm ok das sieht besser aus, als meins, aber um den Feinschliff kümmere ich mich später :)

Die Erfahrung zeigt, daß, wenn es einmal irgendwie funktioniert (verd... schon wieder, das heißt ja jetzt neudeutsch 'funzen'), dann wird der Feinschliff meist 'übersprungen', also sollte man solche Sachen gleich von Anfang an machen. Es ist auch eine Übungssache, herauszufinden, welche der Möglichkeiten auf Dauer für bestimmte Anwendungsfälle sich als günstig erweisen. Und Übung ist nun mal die halbe Miete.

Grüße
  Klaus