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:

Anmerkung: Die Unterstützung für den Upload von mehreren Dateien wurde in PHP 3.0.10 hinzugefügt.

Beispiel 20-3. Upload 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 $HTTP_POST_FILES['userfile'], $HTTP_POST_FILES['userfile']['name'] und $HTTP_POST_FILES['userfile']['size'] initialisiert. (Wie auch in $_FILES seit PHP 4.1.0. In PHP 3 $HTTP_POST_VARS. Ist register_globals aktiviert, werden auch globale Variablen für die hochgeladenen Dateien initialisiert). Jedes von ihnen ist ein numerisch indiziertes Array mit den entsprechenden Werten der hochgeladenen Dateien.

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

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