Voici le code que j'ai, et je me demande ce que je fais mal qu'il n'affiche pas le nom.HTML 5 télécharger plusieurs fichiers avec 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>
Et les informations de traitement qui ne fonctionne pas:
foreach ($_FILES['imageURL'] as $files[]) {
echo $files['file'];
}
Edit:
Lors d'un changement ma boucle foreach à:
foreach ($_FILES['imageURL'] as $file) {
echo $file['name'];
}
Toujours rien imprime .
Cependant, quand je fais quelque chose comme ceci:
foreach ($_FILES['imageURL']['name'] as $filename) {
echo $filename;
}
Le nom de fichier ne se imprime. Je ne sais pas ce que cela implique.
MISE À JOUR RESOLU:
Comme lié par John Conde, le tableau entrelacée structure est différente lors du téléchargement de plusieurs fichiers que lors du téléchargement d'un seul fichier. Pour utiliser foreach, nous devons restructurer le tableau.
$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;
nous pouvons maintenant utiliser foreach à boucle:
foreach ($files as $file) {
echo $file['name'];
}
Le code sous 'mise à jour résolue' est plutôt médiocre. is_array ($ fdata ['nom']) évaluera toujours false, ce qui signifie que la plupart des exemples ne sont jamais exécutés. Voir la réponse acceptée sur cette page à la place. –