Hallo,
ich habe eine Seite mit einem Formular angelegt, welches mehrere Felder enthält um Dateien auf den Server zu laden. Die Verarbeitung erfolgt mit einem Perl-Skript unter Nutzung des CGI-Moduls ($cgi->param) und der read-Funktion. Nachfolgend ein Auszug aus dem Skript mit dem Inhalt der Schleife, die die vorhandenen Datei-Felder abarbeitet:
my $file = $cgi->param("pic$i");
if ($file) {
my $fname = $uploaddir."/".$file;
open DAT,'>'.$fname or die 'Error processing file: ',$!;
binmode $file;
binmode DAT;
my $data;
while(read $file,$data,65536) {
print DAT $data;
}
close DAT;
}
Nun kommt es, offenbar in Abhängigkeit von der Upload-Bandbreite, bei entsprechender Datenmenge, zum Skriptabbruch wegen Laufzeitüberschreitung. Ich bin bisher davon ausgegangen, daß das verarbeitende Perl-Skript, und somit auch die zulässige Skriptlaufzeit, erst nach vollständiger Übertragung des Post-Requests startet.
Abgesehen vom abgebrochenen Upload, bleiben dann auch noch im Verzeichnis /home/tmp Dateien mit dem Namen CGItemp* stehen, die nach entsprechend häufigen Fehlversuchen der verfügbaren Speicherplatz reduzieren, da sie nicht mehr automatisch gelöscht werden.
Hat jemand einen Tip bzw. kann der pH-Support bestätigen, daß die Skriptlaufzeit schon mit Beginn des POST-Requests anläuft? Das Wegschreiben von z.B. 3 Dateien à ca. 1 MB kann ja wohl nicht die zulässige Skriptlaufzeit sprengen, oder?
Gruß
Michael