Thread Problem mit CGI-Upload-Relais (4 answers)
Opened by TheMacTrader at 2011-05-11 15:40

rosti
 2011-05-11 17:09
#148475 #148475
User since
2011-03-19
3566 Artikel
BenutzerIn
[Homepage]
user image
binmode $handle und "zeilenweise" Handle lesen passt nicht so recht zusammen.

Ansonsten ist binmode $handle ok.

Zum Upload: Sofern das Modul CGI verwendung findet, liefert die Methode param() ein Handle auf die hochgeladene Datei

Code (perl): (dl )
1
2
3
4
5
use CGI;
my $cgi = CGI->new; # erstelle CGI-Instanz

my $handle = $cgi->param('name_input_type_file');
binmode $handle; # wie gesagt...


Die Datei ist an dieser Stelle bereits auf dem Server, aber noch nicht da, wo wir sie haben wollen ;)

Wir haben das $handle und lesen es aus mit read();

Code (perl): (dl )
1
2
3
4
while(read($handle, my $buffer, 1024)){
   print MY_HANDLE $buffer; # schreibe nun die eigene Datei
}
close $handle;


Wobei: $handle ist tatsächlich ein HANDLE im Kontext mit der read()-Funktion.

Im scalaren Kontext

$dateiname = $handle; steht in $dateiname der Dateiname. Nutze File::Basename zum parsen $dateiname, manche Browser liefern fälschlicherweise den kompletten lokalen Pfad.

Und wie schon Bianca schrieb: Die Schreibberechtigungen müssen vorhanden sein.



http://blog.rolfrost.de/

The art of steam.

View full thread Problem mit CGI-Upload-Relais