File-Upload Problem seit neuer Perl-Version
File-Upload Problem seit neuer Perl-Version
am 14.08.2006 13:19:10 von j-w-b
Hallo NG,
habe eine neuere Perl-Version v5.8.6 installiert, seit dem habe ich Probleme
mit dem Fle-Upload das vorher ohne Probleme ging:
....
while($bytesread = read($import_file, $buffer, 1024)) {
$bytes_sum += $bytesread;
$file .= $buffer;
$sum_kb = sprintf("%.0f", ($bytes_sum / 1024));
if ($sum_kb > $max_kb) {
last;
}
}
....
bekomme immer den Fehler: read() on unopened filehandle at E:\...
Ob auf lokalem Server oder Webserver, beide das gleiche Problem bei gleicher
Perl-Version.
Gruß
Joachim
Re: File-Upload Problem seit neuer Perl-Version
am 14.08.2006 14:09:06 von Christian Lackas
* Joachim Böcker [2006-08-14]:
Hallo Joachim,
> habe eine neuere Perl-Version v5.8.6 installiert, seit dem habe ich Probleme
> mit dem Fle-Upload das vorher ohne Probleme ging:
> while($bytesread = read($import_file, $buffer, 1024)) {
> bekomme immer den Fehler: read() on unopened filehandle at E:\...
interessant ist hier eigentlich nur wo $import_file herkommt und was du
dazwischen damit machst. Vorzugsweise sollte das nur:
use CGI ':standard'; # vermute ich jetzt einfach mal
my $import_file= upload('uploaded_file'); # oder wie das Feld heisst
sein.
Gruß
Christian
--
Jeder macht, was er will; keiner macht, was er soll -
aber alle machen mit.
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
Re: File-Upload Problem seit neuer Perl-Version
am 14.08.2006 19:01:51 von j-w-b
> Hallo Joachim,
>
>> habe eine neuere Perl-Version v5.8.6 installiert, seit dem habe ich
>> Probleme
>> mit dem Fle-Upload das vorher ohne Probleme ging:
>> while($bytesread = read($import_file, $buffer, 1024)) {
>> bekomme immer den Fehler: read() on unopened filehandle at E:\...
>
> interessant ist hier eigentlich nur wo $import_file herkommt und was du
> dazwischen damit machst. Vorzugsweise sollte das nur:
>
> use CGI ':standard'; # vermute ich jetzt einfach mal
> my $import_file= upload('uploaded_file'); # oder wie das Feld heisst
Hier der komplettere Code, ist doch aber egal wie ich mir den Pfad hole!
Fakt ist es ging vorher mit dem älteren Perl, da muß sich doch was geändert
haben :-(
....
my $import_file = $$client_data_hash_ref{'import_datei'};
if($import_file eq "") {
$template_hash{$ERROR_TAG} = $view->get_main_error_frame("Fehler: Kein
Dateiname angegeben!");
}elsif($import_file !~ /^[0-9A-Za-z\.\-_\\ :]+?\.([a-z]{3})$/) {
$template_hash{$ERROR_TAG} = $view->get_main_error_frame("Fehler:
Ungültiger Dateiname oder Pfad!");
}else{
my $extension = $1;
if($extension ne "csv"){
$template_hash{$ERROR_TAG} = $view->get_main_error_frame("Fehler:
Ungültige Import-Datei!");
}else{
my $bytesread = undef;
my $buffer = undef;
my $bytes_sum = 0;
my $file = "";
my $sum_kb = 0;
# Datei in den Binär-Modus schalten - nur auf Entwicklungsumgebung
Windows :-(
binmode $import_file;
while($bytesread = read($import_file, $buffer, 1024)) {
#print ".";
$bytes_sum += $bytesread;
$file .= $buffer;
$sum_kb = sprintf("%.0f", ($bytes_sum / 1024));
if ($sum_kb > $max_kb) {
last;
}
}
if ($sum_kb > $max_kb) {
$template_hash{$ERROR_TAG} = $view->get_main_error_frame("Fehler: Datei
zu groß, maximal $max_kb KB!");
}elsif ($sum_kb > 0) {
....
Re: File-Upload Problem seit neuer Perl-Version
am 14.08.2006 20:50:49 von Christian Lackas
* Joachim Böcker [2006-08-14]:
Hallo Joachim,
> > use CGI ':standard'; # vermute ich jetzt einfach mal
> > my $import_file= upload('uploaded_file'); # oder wie das Feld heisst
> Hier der komplettere Code, ist doch aber egal wie ich mir den Pfad
> hole! Fakt ist es ging vorher mit dem älteren Perl, da muß sich doch
> was geändert haben :-(
das mag sein.
> my $import_file = $$client_data_hash_ref{'import_datei'};
Womit wir immer noch nicht wissen wo die Daten denn nun herkommen. Nimm
einfach das CGI-Modul wie in der Dokumentation beschrieben und es wird
gehen.
Gruß
Christian
--
Es ist ganz leicht, sich das Rauchen abzugewöhnen;
ich habe es schon hundert Mal geschafft.
(Mark Twain, am. Schriftsteller, 1835-1903)
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
Re: File-Upload Problem seit neuer Perl-Version
am 14.08.2006 23:01:29 von j-w-b
>> > use CGI ':standard'; # vermute ich jetzt einfach mal
>> > my $import_file= upload('uploaded_file'); # oder wie das Feld heisst
>> Hier der komplettere Code, ist doch aber egal wie ich mir den Pfad
>> hole! Fakt ist es ging vorher mit dem älteren Perl, da muß sich doch
>> was geändert haben :-(
>
> das mag sein.
>
>> my $import_file = $$client_data_hash_ref{'import_datei'};
>
> Womit wir immer noch nicht wissen wo die Daten denn nun herkommen. Nimm
> einfach das CGI-Modul wie in der Dokumentation beschrieben und es wird
> gehen.
Bingo, so gehts! 1000 Dank
Re: File-Upload Problem seit neuer Perl-Version
am 15.08.2006 10:25:02 von hjp-usenet2
On Mon, 14 Aug 2006 19:01:51 +0200, Joachim Böcker wrote:
>> Hallo Joachim,
>>> habe eine neuere Perl-Version v5.8.6 installiert, seit dem habe ich
>>> Probleme
>>> mit dem Fle-Upload das vorher ohne Probleme ging:
>>> while($bytesread = read($import_file, $buffer, 1024)) {
>>> bekomme immer den Fehler: read() on unopened filehandle at E:\...
[...]
> Hier der komplettere Code, ist doch aber egal wie ich mir den Pfad hole!
read erwartet aber keine Pfad, sondern einen Filehandle.
hp
--
_ | Peter J. Holzer | > Wieso sollte man etwas erfinden was nicht
|_|_) | Sysadmin WSR | > ist?
| | | hjp@hjp.at | Was sonst wäre der Sinn des Erfindens?
__/ | http://www.hjp.at/ | -- P. Einstein u. V. Gringmuth in desd
Re: File-Upload Problem seit neuer Perl-Version
am 16.08.2006 02:23:32 von Christian Lackas
* Peter J. Holzer [2006-08-15]:
Hallo Peter,
> > Hier der komplettere Code, ist doch aber egal wie ich mir den Pfad hole!
> read erwartet aber keine Pfad, sondern einen Filehandle.
das ist vermutlich ein vom CGI-Modul stammendes Objekt und kann damit
beides sein (wahrscheinlich geht diese Dualität aber irgendwo im Code
des OPs verloren).
Gruß
Christian
--
Früher habe ich mich vor der Arbeit gedrückt,
heute könnte ich stundenlang zusehen.
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
Re: File-Upload Problem seit neuer Perl-Version
am 18.08.2006 20:53:27 von hjp-usenet2
On Wed, 16 Aug 2006 02:23:32 +0200, Christian Lackas wrote:
> * Peter J. Holzer [2006-08-15]:
>> > Hier der komplettere Code, ist doch aber egal wie ich mir den Pfad hole!
>> read erwartet aber keine Pfad, sondern einen Filehandle.
>
> das ist vermutlich ein vom CGI-Modul stammendes Objekt
Vielleicht, vielleicht auch nicht. Den entsprechenden Code hat der OP ja
nie gepostet, und nachdem es plötzlich funktioniert hat, nachdem er es
"so wie in der Dokumentation beschrieben" gemacht hat, liegt der
Verdacht nahe, dass er irgendwas anders gemacht hat. Insbesondere, wenn
ihm der Unterschied zwischen einem Pfad und einem Filehandle nicht klar
ist.
> und kann damit beides sein
So ist es.
hp
--
_ | Peter J. Holzer | > Wieso sollte man etwas erfinden was nicht
|_|_) | Sysadmin WSR | > ist?
| | | hjp@hjp.at | Was sonst wäre der Sinn des Erfindens?
__/ | http://www.hjp.at/ | -- P. Einstein u. V. Gringmuth in desd