Upload mehrerer Dateien

Mehrere Dateien können hochgeladen werden, indem Sie verschiedene Namen name für input verwenden.

Es ist ebenfalls möglich, mehrere Dateien simultan hochzuladen, und die Informationen automatisch in Arrays zu erhalten. Um dies zu tun, verwenden Sie in dem HTML-Formular die gleiche Array-Sende-Syntax wie bei Auswahllisten mit Mehrfachauswahl und Checkboxen:

Beispiel #1 Hochladen mehrerer Dateien

<form action="file-upload.php" method="POST" enctype="multipart/form-data"> Send these files:<br> <input name="userfile[]" type="file"><br> <input name="userfile[]" type="file"><br> <input type="submit" value="Send files"> </form>

Wenn das obige Formular übermittelt ist, werden die Arrays $_FILES['userfile'], $_FILES['userfile']['name'] und $_FILES['userfile']['size'] initialisiert.

Nehmen wir zum Beispiel an, dass die Dateinamen /home/test/review.html und /home/test/xwp.out übermittelt wurden. In diesem Fall würde $_FILES['userfile']['name'][0]review.html enthalten und $_FILES['userfile']['name'][1] hätte den Wert xwp.out. Genauso würde $_FILES['userfile']['size'][0] die Dateigröße von review.html enthalten, usw.

$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] und $_FILES['userfile']['type'][0] sind ebenfalls gesetzt.

Warnung

Die Option max_file_uploads setzt ein Limit auf die Anzahl der Dateien, welche in einer Anfrage hochgeladen werden können. Sie müssen sicherstellen, dass ihr Formular nicht erlaubt, mehr Dateien hochzuladen als dieses Limit.

Beispiel #2 Hochladen eines kompletten Verzeichnisses

In den HTML-Feldern zum Hochladen von Dateien ist es mit dem Attribut webkitdirectory möglich, ein ganzes Verzeichnis hochzuladen. Diese Funktion wird von den meisten modernen Browsern unterstützt.

Mit der Angabe full_path ist es möglich, die relativen Pfade zu speichern, oder das gleiche Verzeichnis auf dem Server zu rekonstruieren.

<form action="file-upload.php" method="post" enctype="multipart/form-data"> Dieses Verzeichnis hochladen:<br /> <input name="userfile[]" type="file" webkitdirectory multiple /> <input type="submit" value="Dateien abschicken" /> </form>
Warnung

Das Attribut webkitdirectory ist nicht standardisiert und gehört nicht zu den Standards. Es sollte nicht auf Websites verwendet werden, die mit dem Internet verbunden sind: Es wird nicht bei jedem Benutzer funktionieren. Außerdem kann es große Inkompatibilitäten zwischen Implementierungen geben, und das Verhalten kann sich in Zukunft ändern.

PHP analysiert nur die relativen Pfadinformationen, die vom Browser/User-Agenten übermittelt werden, und übergibt diese Informationen an das Array $_FILES. Es gibt keine Garantie, dass die Werte im Array full_path eine echte Verzeichnisstruktur enthalten, weshalb die PHP-Anwendung diesen Informationen nicht vertrauen darf.

To Top