Thread Dateiupload - Script
(10 answers)
Opened by Manuel at 2009-03-16 11:34
Hi du!
Ich verstehe nicht wie ich asString einsetzen muss... Folgendes habe ich jetzt nochmal ausprobiert für den Upload: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 my ($bytesread, $buffer); my $numbytes = 1024; my $filename2 = $query->param('filename'); open (OUTFILE, ">", "$upload_dir/$filename") or die "Couldn't open $upload_dir for writing: $!"; while ($bytesread = read($filename2, $buffer, $numbytes)) { print OUTFILE $buffer; } close OUTFILE; So, das geht zwar, aber er schreibt die Datei erstmal in den Hauptspeicher und sobald er die Datei schließt wird sie erst geschrieben...so komme ich aber nicht an die aktuelle Größe der Datei beim Upload. Jetzt habe ich folgendes gefunden: Code (perl): (dl
)
use File::Temp qw ( tempfile ); Ich weiss nur leider nicht wie ich diese tempfile-Funktionen einsetze und ob diese wirklich das sind was ich suche. Könnte mir da jemand bitte etwas mehr sagen als nur ein Verweis auf die Doku? Ich habe wirklich Nächte lang nachgelesen, eben das Script von 0 an nochmals geschrieben um jede Zeile bis ins Detail zu verstehen und mittlerweile weiss ich wie das Script funktioniert... Dann habe ich noch etwas anderes gefunden: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 open(TMP,">","$post_data_file") or &bye_bye ("can't open temp file"); my $i=0; $ofh = select(TMP); $| = 1; select ($ofh); while (read (STDIN ,$LINE, 4096) && $bRead < $len ) { $bRead += length $LINE; select(undef, undef, undef,0.35); # sleep for 0.35 of a second. # Many thanx to Patrick Knoell who came up with the optimized value for # the duration of the sleep $i++; print TMP $LINE; } close (TMP); Kann mir das jemand erklären was da genau gemacht wird? Ist das vielleicht der Trick mit dem Timer? Denn mir scheint als wäre es damit machbar...nur funktioniert das bei mir nicht so richtig... Vielen lieben Dank!!! Manuel |