cgi->upload() kein Filehandle ...
Von: Ervin Peters (ervn.peters@ervnet.de) [Profil]
Datum: 17.09.2007 20:31
Message-ID: <fcmh6s$kn0$03$1@news.t-online.com>
Newsgroup: de.comp.lang.perl.cgi
Datum: 17.09.2007 20:31
Message-ID: <fcmh6s$kn0$03$1@news.t-online.com>
Newsgroup: de.comp.lang.perl.cgi
Teile eines perl cgi upload scriptes:
Ein Hash speichert die auszuführenden actions des Scriptes:
use strict;
use CGI
my $cgi = new CGI();
[..]
my $actions
{
[..],
upload => sub
{
my $ifile = $cgi->upload('newfile');
binmode $ifile;
[..]
},
[..]
}
[..]
$ret = $actions->{$action}();
[..]
Ich wunderte mich warum eine Datei angelegt wurde aber leer blieb.
Das binmode gab dann die Fehlermeldungen das $ifile kein gültiges handle
sei. in den Warnungen stand dann was das ein read auf ein nicht offenes
Filehandle nicht möglich sei.
???
Paralleltest des Uploads mit den einem modifizierten selfhtml-upload
script verwirt. Es funktioniert, die Datei wird erstellt und gefüllt,
binmode gibt keinen Fehler.
Der einzige verbleibende Unterschied war zum Schluß noch die Position des
my $ifile = $cgi->upload('newfile')
Ich zog es aus der Funktion raus in den Rumpf und siehe da, es
funktioniert:
my $cgi = new CGI();
my $ifile = $cgi->upload('newfile');
my $actions
{
[..],
upload => sub
{
binmode $ifile;
[..]
},
[..]
}
und siehe da, die Datei wurde an der gewünschten Stelle erzeugt und
gefüllt.
Kann mir das jemand erklären, warum sich die $cgi->upload('newfile')
Variable, genauer das Filehandle daran, abhängig vom Abfrageort anders
verhält?
ervin
[ Auf dieses Posting antworten ]Antworten
- Christian Winter (18.09.2007 07:28)
- Ervin Peters (18.09.2007 10:39)
- Ferry Bolhar (18.09.2007 17:13)
- Frank Seitz (20.09.2007 17:30)
- Ervin Peters (21.09.2007 09:12)
