PHP Tutorial – Dateien hochladen und speichern

PHP Tutorial – Dateien hochladen und speichern

In diesem Tutorial zeige ich Dir wie du mithilfe von PHP Daten, welche über eine HTML-Form abgesendet werden, überprüfen und abspeichern kannst.

HTML-Form für den Upload:

Für das Hochladen von Dateien wird zunächst eine Form benötigt. Anders als bei einer normalen Form muss beim hochladen von Dateien das Attribut enctype="multipart/form-data" im Form-Tag eingesetzt werden. Ohne diesen wird ein Upload von Dateien nicht möglich sein.

Anschließend wird noch ein Datei-Input sowie ein „Absenden“-Button benötigt. Eine Form könnte dann z.B. so aussehen:

<form enctype="multipart/form-data" action="" method="post">
   <input type="file" name="datei">
   <input type="submit" name="absenden" value="Absenden">
</form>

Datei mit PHP prüfen:

Die hoch geladenen Datei wird in PHP über die Variable $_FILES übergeben. Informationen zur Datei sind dann in einem Array gespeichert, welches man mit dem in der Form angegebenen Namen des Input-Feldes finden kann.

In diesem Beispiel sind z.B. die Informationen zur hoch geladenen Datei in der Variable $_FILES["datei"] gespeichert. Diese gibt uns folgende ausgaben:

$_FILES["datei"]["name"]; // Name der hoch geladenen Datei mit Dateiendung
$_FILES["datei"]["tmp_name"]; // Der temporäre Speicherort der Datei auf dem Server
$_FILES["datei"]["type"]; // Rückgabe des Dateityps // Z.B.: text/plain bei einer Textdatei
$_FILES["datei"]["error"]; // Rückgabe eines Fehlercodes sollte ein Fehler auftreten
$_FILES["datei"]["size"]; // Größe der hoch geladenen Datei

Diese Daten können wir jetzt nutzen, um die hoch geladenen Datei zu überprüfen und anschließend zu speichern. Speichern bzw. verschieben können wir die Datei mit der in PHP verfügbaren Funktion move_uploaded_file(/*Pfad zur Datei*/,/*Neuer Pfad der Datei*/);.

Die einfachste Ausführung so eines uploads kann wie folgt aussehen:

if(isset($_POST["absenden"])){
   move_uploaded_file($_FILES["datei"]["tmp_name"],$_FILES["datei"]["name"]);
}

In diesem Beispiel wird die hoch geladenen Datei im gleichen Verzeichnis wie die ausführende Datei unter dem hoch geladenen Namen gespeichert.

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.