xwolf.de|com

Menü

Inhalt dieser Site

Ansicht

Individuelle Benutzerkonfiguration für die Site.

Druckansicht Startseite Suchen

A A A A

Upload

Mit Hilfe dieses Skriptes ist eine Dateiupload auf einen Webserver möglich.

Source Code

Perl Sourcecode
upload.pl V1.4 Das Skript upload.pl
Layoutdateien
upload_bestaetigung.html Template für die Bestätigung nach dem Upload.
uploadform.html Template für die Darstellung eines einfachen Formularfeldes zum upload von Dateien.
Download als Archiv-Datei
upload.tgz Getartes und gezipptes Archiv aller obigen Dateien. (Zu Entpacken unter Unix/Linux mit tar -xzf upload.tgz)
Achtung: Sollte beim obigen Download-Link fehlerhafterweise als Dateiname "xload.cgi" angegeben sein, ignorieren Sie dies und benennen den Dateinamen um. Einige Browser ignorieren leider den Standard zur Übermittlung von Dateinamen...
Alle Dateien können auch im Freecode-Verzeichnis gefunden werden.

Wirkungsweise

Bitte geben Sie den Dateinamen zum Upload an. Beachten Sie, daß maximal 1024 Bytes geladen werden können und die Datei später von anderen benutzern wieder überschrieben werden kann.
(Aus Sicherheits- und Rechtsgründen können kann jedoch auf die Datei, die Sie hier uploaden nicht zugegriffen werden. Ansonsten kann dieses Beispiel von irgendwelchen Freaks als Filesharing-Server genutzt werden.)

Aufruf und Einbau

Der Aufruf erfolgt über ein einfaches Formular, wie das obige. Der Quellcode sieht wie folgt aus:

<form action="http://www.example.org/cgi-bin/upload.pl" method="post" enctype="multipart/form-data">
<input name="filename" type="file" size="30">
<input type="submit" value=" Ok ">
</form>

Installation

Kopieren Sie die Datei upload.pl und die Template-Dateien in Ihr CGI-BIN-Verzeichnis. Setzen Sie die Ausführungsrechte mittels code>CHMOD. Z.B.: chmod 755 upload.pl.
Die template-Dateien müssen lediglich lesbar sein.
Desweiteren müssen Sie ein Verzeichnis erstellen, in welchem Sie die geladenen Dateien ablegen lassen wollen.
Ändern Sie im Programm folgende Zeilen:

Zeile 1: #!/local/bin/perl5 Geben Sie hier Ihren eigenen Pfad zu Perl ein, falls er von diesem abweicht.
Zeile 27: $UPLOAD_DIR = "files/"; Dieses verzeichnis kann relativ zum CGI-Skript sein, oder absolut, wenn es mit einem "/" beginnt. Das Verzeichnis muss fuer das CGI-Skript beschreibbar sein, sofern die Dateinamen nicht fest vorgegeben sind.
Zeile 35: $UPLOAD_FILE = 1; Wie wird mit den Dateinamen verfahren:
  • = 1: Immer fester Dateiname, wie in der Variable $UPLOAD_FILENAME definiert.
  • = 2: Der Dateiname ist von der Zeit des Uploads abhaengig.
  • = 3: Der Dateiname wird so geneommen wie er ist, wobei jedoch gefaehrliche Sonderzeichen geloescht werden. Der Dateiname darf nur folgende Zeichen enthalten: A-Z 0-9 a-z - , ; : _ .
Zeile 48: $UPLOAD_FILENAME = "uploadfile.upl"; Fest vorgegebener Dateiname fuer hochgeladene Dateien. Diese Datei muss beschreibbar sein!
Zeile 52: my $POST_MAX = 1024*10; Angabe der maximalen Bytegroesse, die erlaubt ist zum Upload.
Zeile 55: my $HTML_AUSGABE_FILE = "upload_bestaetigung.html"; Diese Datei enthaelt die (HTML)Ausgabe des Skriptes nachdem alles abgearbeitet ist. Alle uebergebenen Eingaben koennen abgefragt werden ueber die Variablen von der Syntax '#Name#' .
Feste Variablen sind:
#filename# Dateiname
#filetype# Dateityp
#bytes# Uebertragene Bytes
#orginal_filename# Orginal Dateiname (mit Sonderzeichen)
#full_filename# Dateiname mit Speicherpfad
#status# Statustext
#post_max# Maximale Anzahl an erlaubten Bytes fuer die Uebertragung
#progurl# URL zum CGI-Skript
Zeile 52: my $HTML_FORMULAR_FILE = "uploadform.html"; Falls nichts uebertragen wurde, kann man in diesem Template ein Formular fuer den Upload bereitstellen, die dann angezeigt wird. Variablen wie oben.

Info

$Id: upload.shtml,v 1.4 2003/05/23 12:22:16 xwolf Exp $, Linkcount: 1
© 1996 - 2003 by xwolf