Subida de varios ficheros

Se pueden subir varios ficheros utilizando diferentes name para los input.

También es posible subir varios ficheros simultáneamente y tener la información organizada automáticamente en arrays. Para ello es necesario utilizar la misma sintaxis de presentación de array en el formulario HTML, tal como se hace con 'selects' y 'checkboxes' múltiples:

Ejemplo #1 Subida de varios ficheros

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Enviar estos ficheros:<br />
  <input name="fichero_usuario[]" type="file" /><br />
  <input name="fichero_usuario[]" type="file" /><br />
  <input type="submit" value="Enviar ficheros" />
</form>

Cuando se envía el formulario de arriba, se inicializarán los arrays $_FILES['fichero_usuario'], $_FILES['fichero_usuario']['name'] y $_FILES['fichero_usuario']['size'] (al igual que en $HTTP_POST_FILES para las versiones de PHP anteriores a la 4.1.0). Cuando register_globals está activado, las globales para los ficheros subidos también se inicializan. Cada uno de estos será un array indexado numéricamente con los valores correspondientes a los ficheros enviados.

Por ejemplo, suponga que se envían los nombres de fichero /home/test/review.html y /home/test/xwp.out. En este caso,$_FILES['fichero_usuario']['name'][0] contendría el valor review.html, y $_FILES['fichero_usuario']['name'][1] contendría el valor xwp.out. De manera similar, $_FILES['fichero_usuario']['size'][0] contendría el tamaño del fichero review.html, y así sucesivamente.

También se establecen $_FILES['fichero_usuario']['name'][0], $_FILES['fichero_usuario']['tmp_name'][0], $_FILES['fichero_usuario']['size'][0], y $_FILES['fichero_usuario']['type'][0].

Advertencia

A partir de PHP 5.2.12, el ajuste de configuración max_file_uploads actúa como límite del número de ficheros que se pueden subir en una petición. Es necesario asegurarse de que el formulario no intente subir más ficheros que este límite en una petición.