Ответ 1
Try
foreach ($_FILES['imageURL'] as $file) {
echo $file['name'];
}
UPDATE:
Google нашел этот учебник, который может помочь вам
Вот код, который у меня есть, и мне интересно, что я делаю неправильно, что оно не отображает имя.
<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'];
}
Edit:
При изменении моего цикла 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'];
}
Try
foreach ($_FILES['imageURL'] as $file) {
echo $file['name'];
}
UPDATE:
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 />