Hallo!!
Ich hab da ein Problem mit einem cgi upload-script!
MANCHMAL bekomme ich die Fehlermeldung Premature end of script headers zurück. Beim zweiten starten des scripts wirds dann ausgeführt.
#!perl -w
use strict;
use CGI; # Modul fuer CGI-Programme
my $cgi = new CGI; # neues Objekt erstellen
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Upload Feedback</title></head><body>\n";
die Formular-daten holen
my $file = $cgi->param("myfile");
my $wasfach = $cgi->param("fach");
my $kommentar = $cgi->param("beschreibung");
my @Datei = split(/\/ ,$file); #letztes Element des Arrays ist Dateiname
my $Dateiname = $Datei[$#Datei]; #ermittelt letztes element
#größe der Datei ermitteln
my $Dateisize = -s $file;
$Dateisize /= 1000; #Datei jetzt in kByte
if ($Dateisize > 2000) #wenn Datei größer 2MByte
{
print "<p>Datei ist zu groß, höchstens 2 MByte</p>\n";
print "</body></html>\n";
die; # ABBRECHEN!!!
}
dateinamen erstellen und die datei auf dem server speichern
chdir("../$wasfach");
my $fname = $Dateiname;
open DAT,'>'.$fname or die 'Error processing file: ',$!;
Dateien in den Binaer-Modus schalten
binmode $file;
my $data;
while(read $file,$data,1024) {
print DAT $data;
}
close DAT;
print "<p>Datei $file wurde erfolgreich übertragen</p>\n";
print "</body></html>\n";
Wenn ich das script Lokal auf meinem Rechner starte funktioniert es immer!
Wenn jemand eine Idee hat, wäre ich ziemlich froh :-))
Ok, MfG
Marcel