## Cargar múltiples ficheros simultáneamente

La carga de múltiples ficheros es posible utilizando diferentes nombres en el atributo `name` de la etiqueta `input`.

También es posible cargar múltiples ficheros simultáneamente y obtener la información en forma de array. Para ello, se debe utilizar la sintaxis de array en los nombres de las etiquetas HTML, como se ha hecho con las selecciones múltiples y las casillas de verificación.

Ejemplo #1 Cargar múltiples ficheros simultáneamente

    <form action="file-upload.php" method="post" enctype="multipart/form-data">
      Envíe múltiples ficheros: <br />
      <input name="userfile[]" type="file" /><br />
      <input name="userfile[]" type="file" /><br />
      <input type="submit" value="Enviar los ficheros" />
    </form>

Cuando el formulario anterior ha sido enviado, los arrays $_FILES['userfile'], $_FILES['userfile']['name'], y $_FILES['userfile']['size'] serán inicializados.

Por ejemplo, supongamos que los ficheros /home/test/review.html y /home/test/xwp.out han sido cargados. En este caso, $_FILES['userfile']['name'][0] contiene review.html y $_FILES['userfile']['name'][1] contiene xwp.out. De manera similar, $_FILES['userfile']['size'][0] contendrá el tamaño del fichero review.html, etc.

$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] y $_FILES['userfile']['type'][0] también son creados.

Advertencia

El parámetro max_file_uploads limita el número de ficheros que pueden ser enviados en una solicitud. Se debe verificar que su formulario no intente enviar más ficheros en la solicitud de lo que permite este límite.

Ejemplo #2 Cargar un directorio entero

En los campos de carga de fichero HTML, es posible cargar un directorio entero con el atributo `webkitdirectory`. Esta funcionalidad es soportada en la mayoría de los navegadores modernos.

Con la información `full_path`, es posible almacenar las rutas relativas o reconstruir la misma jerarquía de directorios en el directorio.

    <form action="file-upload.php" method="post" enctype="multipart/form-data">
      Envíe este directorio:<br />
      <input name="userfile[]" type="file" webkitdirectory multiple />
      <input type="submit" value="Enviar ficheros" />
    </form>

Advertencia

El atributo `webkitdirectory` no es estándar y no está actualmente en proceso de estandarización. Esto no debe ser utilizado en sitios de producción orientados al Web: no funcionará para todos los usuarios. Puede haber grandes incompatibilidades entre las implementaciones y el comportamiento puede cambiar en el futuro.

PHP analiza únicamente la información de las rutas relativas enviadas por el navegador/user-agent y transmite la información en el array $_FILES. No hay garantías de que los valores en el array `full_path` contengan una verdadera estructura de directorios y la aplicación PHP no debe confiar en esta información.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open