Upload von Dateien via PHP

Sichere Uploads per PHP - Bildergalerie & Co.

Bildergalerie, Download-Ecke, CMS - kaum eine Website kommt ohne Upload-Funktion für Dateien aus. Wir zeigen, wie Sie sichere Uploads mit PHP realisieren.

  1. Sichere Uploads per PHP - Bildergalerie & Co.
  2. Fehlerbehandlung
  3. Datei-Handling
  4. Dateigrößen und Schreibrechte
Datei Suche ordner

© Archiv

Datei Suche ordner

Meist sind es nicht die massenweisen Transfers von Dateien, die über Web- Formulare abgewickelt werden. Dafür gibt es mit FTP und vor allem SCP effizientere Methoden, die bis hin zur Benutzerauthentifizierung alle wichtigen Funktionen mitbringen.Im Web sind es regelmäßig die von technisch wenig versierten und nicht immer authentifizierten Benutzern durchgeführten Uploads einzelner Dateien, die per PHP empfangen und verarbeitet werden müssen. Mal ist es die Bildergalerie, die mit neuem Material zu bestücken ist. Ein andermal wird eine Upload-Funktion als Teil eines selbst entwickelten CMS benötigt.

Wir führen Sie durch alle Schritte, die notwendig sind, um solche Uploads mit PHP zu realisieren. Das beginnt beim Upload-Formular für die Website und erstreckt sich über die skriptgesteuerte Bearbeitung der Datei auf dem Server bis hin zu Tipps für die Dateiausgabe.

Den gesamten Code zum Workshop finden Sie im Leser-Service hier. Bevor Sie loslegen, entpacken Sie die in der Zip-Datei enthaltenen Dateien in ein Verzeichnis auf Ihrem Webserver.

Sofern dieser mit dem Internet verbunden ist, sollten Sie das Verzeichnis per Passwort vor unbefugten Zugriffen schützen, denn erst in der letzten Version enthält unser Upload-Skript alle sicherheitstechnisch notwendigen Schutzmaßnahmen.

Empfangsbereit

In Version 1 ist unser Skript ganz kurz:

6: <?php
7: if($_FILES){
8: echo "<pre>";
9: print_r($_FILES);
10: echo "</pre>";
11: }
12: ?>
13: <form method="post" enctype=
"multipart/form-data">
14: Datei: <input type="fi le" name=
"eins"><br>
15: <input type="submit" value=
"Dateien hochladen">
16: </form>

Über das Formular in den Zeilen 8 bis 11 kann der Benutzer eine Datei auf der Festplatte auswählen und an den Server schicken. Gemäß HTTP-Spezifikation muss das Formular dabei per post verschickt werden, während die HTML-Spezifikation den Wert für enctype vorgibt.

Das Ergebnis des Uploads wird im Array $_FILES gespeichert, das beispielsweise so aussieht:

1: Array
2: (
3: [eins] => Array
4: (
5: [name] => ip-adressen.txt
6: [type] => text/plain
7: [tmp_name] => C:\xampp\tmp\php3DA.
tmp
8: [error] => 0
9: [size] => 964
10: )
11: )

Der Key "eins" bildet den Namen von <input type="file"> ab. Wer mehrere Dateien in einem Rutsch empfangen will, muss also lediglich mehrere <input>-Elemente im Formular platzieren und diese mit unterschiedlichen Namen versehen. Nach dem Upload enthält $_FILES dann entsprechend viele Elemente, die mit den üblichen Array-Funktionen bearbeitet werden können.

Die Variable name enthält den Namen der Datei, unter der diese auf der Festplatte des Nutzers zu finden ist. Auf dem Webserver lautet der Dateiname zunächst anders, denn der Server speichert die Datei nur temporär und vergibt dabei einen eigenen Namen.

Dieser steht in tmp_name. type spiegelt den vom Browser übermittelten MIME-Typ der Datei wieder, error gibt Fehlercodes zurück und size enthält die Größe der Date in Bytes.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…
News
Video
SciFi-Action mit Ryan Gosling und Harrison Ford
Video
Agatha-Christie-Verfilmung mit Johnny Depp
Video
Kinostart: 23.11.2017