Se pueden enviar multiples ficheros usando diferentes
nombres (name) para los input.
Así mismo, es posible enviar varios archivos simultaneamente y tener
organizada en arrays la información. Para hacer esto, se utiliza la
misma sintáxis que cuando tenemos multiples "selects" o "checkboxes"
en el formulario HTML:
Nota:
El soporte para envío multiple de ficheros fue añadido en
la versión 3.0.10.
Ejemplo 19-3. Envío de multiples ficheros <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> |
|
Cuando el formulario del ejemplo es enviado, los arrays
$HTTP_POST_FILES['userfile'],
$HTTP_POST_FILES['userfile']['name'] y
$HTTP_POST_FILES['userfile']['size']
son inicializados. Así mismo pasa con $_FILES en PHP 4.1.0
o superiores y $HTTP_POST_VARS en PHP 3. Cuando
register_globals esta activa, las
variables globales para los archivos recibidos también son inicializadas.
Cada uno de estos arrays tendrá en los índices numericos correspondientes
los valores para cada fichero recibido.
Por ejemplo, si tomamos como nombres de archivo enviados
/home/test/review.html y
/home/test/xwp.out. Tendríamos en
$HTTP_POST_FILES['userfile']['name'][0]
el valor de review.html, y en
$HTTP_POST_FILES['userfile']['name'][1] tendríamos
xwp.out; analogamente,
$HTTP_POST_FILES['userfile']['size'][0] contendría
el tamaño del fichero review.html, y asi sucesivamente...
$HTTP_POST_FILES['userfile']['name'][0],
$HTTP_POST_FILES['userfile']['tmp_name'][0],
$HTTP_POST_FILES['userfile']['size'][0] y
$HTTP_POST_FILES['userfile']['type'][0] tambien
son asignadas.