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 19-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.