Thread Dateiupload: Keine leeren Dateien zulassen
(4 answers)
Opened by MechaTikal at 2007-11-01 10:05 moritz+2007-11-01 09:49:00-- Dagegen spricht in der Theorie nichts, aber man muss erst mal auf die Idee kommen. :-) Allerdings benutze ich eine laufende Nummer, falls zwei gleichnamige Dateien hochgeladen werden, und irgendwie will das Skript die nicht runterschmeissen... Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 sub upload_file { my ($hashref) = @_; my $file; my $name; my $buffer; my $savefile; my %filehash = %$hashref; my $uploaddir = "/home/Michaela/public_html/uploadfiles/"; my $success_count = 0; my @empty_files = (); my @uploaded_files = (); while (($name, $file) = each (%filehash)) { $name =~ s/\W|\s//gi; #Sonderzeichen rauswerfen $savefile = $uploaddir . $name; open(OUTFILE, ">$savefile.$$") or print "Error: Can't create file $savefile: $!"; binmode $savefile; while(read($file, $buffer, 1024)) { print OUTFILE $buffer; } close(OUTFILE); check_filesize($savefile.$$); $success_count++; push(@uploaded_files, $file); } if (@empty_files) { $message2 = "Nicht hochgeladen: @empty_files"; } if ($error) { $message = $q->strong($error); } elsif (!$error) { $message = "$success_count Datei(en) erfolgreich hochgeladen: @uploaded_files"; } } ######################################################### sub check_filesize { my ($file_to_check) = @_; my $filesize = 0; my @file_info; my $filesize; @file_info = stat($file_to_check); $filesize = $file_info[7]; if ($filesize == 0) { chdir("/home/Michaela/public_html/uploadfiles/"); #braucht man das überhaupt? unlink($file_to_check) or print "Could not delete $file_to_check: $!"; } else { } } Bringt aber bei mir den Fehler "Could not delete /home/Michaela/public_html/uploadfiles/DBDOrac119targz5165: No such file or directory". $CGI::POST_MAX habe ich jetzt verstanden: Es wird solange gesendet, bis die maximale Größe erreicht wird, dann bricht der Upload ab - richtig? Dann müsste man doch theoretisch erkennen können, wenn keine Bytes ankommen - dann ist die Datei ja leer und der Upload könnte abbrechen. Oder ist das eine Milchmädchenrechnung? |