Ich möchte gerne ein binäres File (bilder etc) auf den webserver uploaden.
Dazu läuft folgender Code (file_upload.pl)
if ($file = param('filename')) {
@outf=split(/\\/,$file);
$outfile=$outf[scalar @outf-1];
my($lines,$words,$characters,@words) = (0,0,0,0);
open OUTF, "\> $outfile";
while () {print OUTF chomp($\_);}
close OUTF;
close $file;
}
Das klappt bei Textdateien auch wunderbar, bei Binaries nicht.
Was mache ich falsch?
Beim speichern des Uploads habe ich jetzt folgenden Code:
if ($file = param('filename')) {
@outf=split(/\\/,$file);
$outfile=$outf[scalar @outf-1];
open OUTF, "\> $outfile";
while (sysread($file,$sys,1024,0)) {
print OUTF $sys;
}
close OUTF; close $file;
}
Jetzt stimmt wenigstens die Dateigröße, Ascii-daten sind immer noch korrekt, aber trotzem werden JPGs und EXEs nicht korrekt gespeichert. Irgenwo müssen da Bits kippen.
Wer kann helfen?
cu, holli
Es
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]