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