Frank Schönmann: Upload von Dateien zum Server

Beitrag lesen

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!