Perl Upload Script

Hi,

ich möchte über ein HTML-Formular eine begrenzte Anzahl (maximal 2) Dateien hochladen. Neben diesen sind jedoch auch weitere Angaben nötig, z.B. persönliche Daten. Folge: ich muss die Daten mit method=post abschicken und alle gesendeten Parameter mit der empfangenden Perl-Datei auslesen.

Problem: mit method=get funktioniert das auslesen der Parameter einwandfrei, jedoch wird natürlich keine der Dateien hochgeladen. Sobald ich auf method=post umstelle findet das perl-script keinerlei Parameter, dafür aber die zu speichernden Dateien. Wie kann ich also beides (das Speichern der Dateien und das Auslesen der Parameter) hinbekommen?

HTML-Datei-Schnippsel:
Code:
<html><head></head><body><form action="upload.cgi" method="post" enctype="multipart/form-data">
Name: <input type="text" name="name" value="" />
Vorname: <input type="text" name="vorname" value="" />
Straße: <input type="text" name="str" value="" />
Foto: <input type="file" name="datei" value="" />
<input type="submit" name="speichern" value="speichern" />
</form></body></html>

Perl-Datei (Abschnitt zum Auslesen der Parameter):
Code:
#!/usr/bin/perl

use CGI; # Modul fuer CGI-Programme
my $cgi = new CGI; # neues Objekt erstellen

if ($request_method eq "GET") {
$form_info = $ENV{'QUERY_STRING'};
} else {
$size_of_form_information = $ENV{'CONTENT_LENGTH'};
read (STDIN, $form_info, $size_of_form_information);
}

print "QUERY_STRING=$ENV{QUERY_STRING}\n";
print "Parameter: $form_info";

Ausgabe bei method=post:

Code:
Parameter:

:rolleyes:
Eigentlich sollte es ja funktionieren. Hab schon mehrere ähnliche Scripts von diversen Webseiten probiert, keines funktioniert. Kann es sein, dass es noch Unterschiede zwischen den Versionen gibt? Hab ich vielleicht eine Einstellung des Webservers übersehen?
:rolleyes:

Zwirni
 
Zurück
Oben