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

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".