hi!
Da hier immer mal wieder die Frage aufkommt, wie man denn eine Datei über ein Perl-Skript auf dem Server empfangen lassen kann, möchte ich hier mal ein entsprechendes Skript posten, das diese Aufgabe übernehmen kann.
Zuerst der notwendige HTML-Code für das Upload-Formular:
=== cut ===
<form name="Upload" action="cgi-bin/uploadtest.pl" method="POST" enctype="multipart/form-data">
<input type="file" name="Datei" size="30">
<input type="submit" value="Upload starten">
</form>
=== cut ===
Und jetzt das gar nicht mal viel längere Perl-Skript:
=== cut ===
#!/usr/bin/perl
binmode STDIN;
read STDIN, $Daten, $ENV{'CONTENT_LENGTH'};
@Teile = split /-----------------------------.{9}/, $Daten;
@Datei = split /\n/, $Teile[1], 5;
while ($Datei[1] =~ /\/) { $Datei[1] =~ s/^.*\//; }
$Datei[1] =~ s/"//;
chop $Datei[1];
chop $Datei[4]; chop $Datei[4];
open DATEI, ">$Datei[1]";
binmode DATEI;
print DATEI $Datei[4];
close DATEI;
print "Content-type: text/html\n\nUpload vollständig!";
=== cut ===
Ich habe obiges zwar nur ein einziges Mal auf meinem lokalen Server getestet, aber ich hoffe, es funktioniert :-) Falls das jemand getestet hat, könnte man das Skript ja in die FAQ aufnehmen.
bye, Frank!