Aquí está el código que tengo, y me pregunto qué estoy haciendo mal que no muestra el nombre.HTML 5 archivo de varias carga con PHP
<form action = "self.php" method="post" enctype="multipart/form-data">
<input type="file" name="imageURL[]" id="imageURL" multiple="" />
<input type="submit" value="submit" name="submit" />
</form>
Y la información de procesamiento que no está funcionando:
foreach ($_FILES['imageURL'] as $files[]) {
echo $files['file'];
}
Editar:
Al cambiar mi bucle foreach para:
foreach ($_FILES['imageURL'] as $file) {
echo $file['name'];
}
Todavía nada imprime .
Sin embargo, cuando hago algo como esto:
foreach ($_FILES['imageURL']['name'] as $filename) {
echo $filename;
}
El nombre del archivo se imprime. Sin embargo, no sé lo que eso implica.
ACTUALIZACIÓN resuelto:
Como vinculado a por John Conde, la matriz de entrelazado estructura es diferente al cargar varios archivos que al subir un solo archivo. Para usar foreach, debemos reestructurar la matriz.
$files=array();
$fdata=$_FILES['imageURL'];
if(is_array($fdata['name'])){
for($i=0;$i<count($fdata['name']);++$i){
$files[]=array(
'name' =>$fdata['name'][$i],
'type' => $fdata['type'][$i],
'tmp_name'=>$fdata['tmp_name'][$i],
'error' => $fdata['error'][$i],
'size' => $fdata['size'][$i]
);
}
}else $files[]=$fdata;
Ahora podemos usar foreach para recorrer:
foreach ($files as $file) {
echo $file['name'];
}
El código en "actualización resuelta" es bastante pobre. is_array ($ fdata ['name']) siempre evaluará falso, lo que significa que la mayoría del ejemplo nunca se ejecuta. Ver la respuesta aceptada en esta página en su lugar. –