Многостраничная загрузка HTML 5 с помощью 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> 

И информация о обработке, которая не работает:

 foreach ($_FILES['imageURL'] as $files[]) { echo $files['file']; } 

Редактировать:

При изменении моего цикла foreach:

 foreach ($_FILES['imageURL'] as $file) { echo $file['name']; } 

Все еще ничего не распечатывается.

Однако, когда я делаю что-то вроде этого:

 foreach ($_FILES['imageURL']['name'] as $filename) { echo $filename; } 

Имя файла печатает. Я не знаю, что это значит.

РЕШЕНИЕ ОБНОВЛЕНИЯ:

Как связывает Джон Конде, структура чередования массивов отличается при загрузке нескольких файлов, чем при загрузке одного файла. Чтобы использовать foreach, мы должны реструктурировать массив.

 $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; 

Теперь мы можем использовать foreach для цикла:

 foreach ($files as $file) { echo $file['name']; } 

Solutions Collecting From Web of "Многостраничная загрузка HTML 5 с помощью PHP"

Пытаться

 foreach ($_FILES['imageURL'] as $file) { echo $file['name']; } 

ОБНОВИТЬ:

Google нашел этот учебник, который может помочь вам

Вместо использования для () и пересчета количества элементов в массиве вы можете использовать более элегантный foreach ()

 $files=array(); $fdata=$_FILES['file']; if(is_array($fdata['name'])){ foreach ($fdata['name'] as $i => $d) { $files[] = array( 'name' => $d, 'tmp_name' => $fdata['tmp_name'][$i] ); } } else $files[]=$fdata; 

Возможно, я ошибаюсь, но не устанавливал бы multiple="" отключить несколько выходов? Просто используйте multiple , как показано в спецификации HTML5 или, для совместимости с XHTML, multiple="multiple" :

 <input type="file" name="imageURL[]" id="imageURL" multiple />