<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/features.file-upload.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'features.file-upload.multiple.php',
    1 => 'Cargar m&uacute;ltiples ficheros simult&aacute;neamente',
    2 => 'Cargar m&uacute;ltiples ficheros simult&aacute;neamente',
  ),
  'up' => 
  array (
    0 => 'features.file-upload.php',
    1 => 'Gesti&oacute;n de cargas de ficheros',
  ),
  'prev' => 
  array (
    0 => 'features.file-upload.common-pitfalls.php',
    1 => 'Errores cl&aacute;sicos',
  ),
  'next' => 
  array (
    0 => 'features.file-upload.put-method.php',
    1 => 'Carga por m&eacute;todo PUT',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'features/file-upload.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="features.file-upload.multiple" class="sect1">
  <h2 class="title">Cargar múltiples ficheros simultáneamente</h2>
  <p class="simpara">
   La carga de múltiples ficheros es posible utilizando diferentes nombres en el atributo <code class="literal">name</code> de la etiqueta <code class="literal">input</code>.
  </p>
  <p class="simpara">
   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.
  </p>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Cargar múltiples ficheros simultáneamente</strong></p>
    <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;form action=&quot;file-upload.php&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;
  Envíe múltiples ficheros: &lt;br /&gt;
  &lt;input name=&quot;userfile[]&quot; type=&quot;file&quot; /&gt;&lt;br /&gt;
  &lt;input name=&quot;userfile[]&quot; type=&quot;file&quot; /&gt;&lt;br /&gt;
  &lt;input type=&quot;submit&quot; value=&quot;Enviar los ficheros&quot; /&gt;
&lt;/form&gt;</pre>
</div>
    </div>

   </div>
  </p>
  <p class="simpara">
   Cuando el formulario anterior ha sido enviado, los arrays <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']</a></var>, <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['name']</a></var>, y <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['size']</a></var> serán inicializados.
  </p>
  <p class="simpara">
   Por ejemplo, supongamos que los ficheros <var class="filename">/home/test/review.html</var> y <var class="filename">/home/test/xwp.out</var> han sido cargados. En este caso, <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['name'][0]</a></var> contiene <var class="filename">review.html</var> y <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['name'][1]</a></var> contiene <var class="filename">xwp.out</var>. De manera similar, <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['size'][0]</a></var> contendrá el tamaño del fichero <var class="filename">review.html</var>, etc.
  </p>
  <p class="simpara">
   <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['name'][0]</a></var>, <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['tmp_name'][0]</a></var>, <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['size'][0]</a></var> y <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES['userfile']['type'][0]</a></var> también son creados.
  </p>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    El parámetro <a href="ini.core.php#ini.max-file-uploads" class="link">max_file_uploads</a> 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.
   </p>
  </div>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Ejemplo #2 Telever un directorio entero</strong></p>
    <div class="example-contents"><p>
     En los campos de televersión de fichero HTML, es posible televersar un directorio entero con el atributo <code class="literal">webkitdirectory</code>. Esta funcionalidad es soportada en la mayoría de los navegadores modernos.
    </p></div>
    <div class="example-contents"><p>
     Con la información <code class="literal">full_path</code>, es posible almacenar las rutas relativas o reconstruir la misma jerarquía de directorios en el directorio.
    </p></div>
    <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;form action=&quot;file-upload.php&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;
  Envíe este directorio:&lt;br /&gt;
  &lt;input name=&quot;userfile[]&quot; type=&quot;file&quot; webkitdirectory multiple /&gt;
  &lt;input type=&quot;submit&quot; value=&quot;Enviar ficheros&quot; /&gt;
&lt;/form&gt;</pre>
</div>
    </div>

   </div>
   <div class="warning"><strong class="warning">Advertencia</strong>
    <p class="simpara">
     El atributo <code class="literal">webkitdirectory</code> 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.
    </p>
    <p class="simpara">
     PHP analiza únicamente la información de las rutas relativas enviadas por el navegador/user-agent y transmite la información en el array <var class="varname"><a href="reserved.variables.files.php" class="classname">$_FILES</a></var>. No hay garantías de que los valores en el array <code class="literal">full_path</code> contengan una verdadera estructura de directorios y la aplicación PHP no debe confiar en esta información.
    </p>
   </div>
  </p>
 </div><?php manual_footer($setup); ?>