2012-03-29 2 views
0

Я действительно не понимаю, почему я получаю эту ошибку или как ее исправить! переменная передается каждому() не является массивом или объектом на тальныеПеременная, переданная каждому(), не является массивом или объектом

while(list($key,$value) = each($_FILES['images']['name'])) 

Полный code-

$max_no_img=4; // Maximum number of images value to be set here 
$imgs_names = array('CV', 'Research Plan', 'Degree Transcript', 'GRE Scores'); 

echo "<form method=post action='' enctype='multipart/form-data'>"; 
echo "<table border='0' width='400' cellspacing='0' cellpadding='0' align=left>"; 
for($i=1; $i<=$max_no_img; $i++){ 
echo "<tr><td>".$imgs_names[$i-1]."</br</td><td> 
<input type=file name='images[]' class='bginput'></td></tr>"; 
} 

echo "<tr><td colspan=2 align=center><input type=submit value='Submit'></td></tr>"; 
echo "</form> </table>"; 

while(list($key,$value) = each($_FILES['images']['name'])) 
{ 

echo $key; 
echo "<br>"; 
echo $value; 
echo "<br>"; 
if(!empty($value)){ // this will check if any blank field is entered 
$filename =rand(1,100000).$value; // filename stores the value 

$filename=str_replace(" ","_",$filename); 

$add = "upload/$filename"; // upload directory path is set 

copy($_FILES['images']['tmp_name'][$key], $add); 
echo $add; 

Любые идеи?

+0

попробовать 'var_dump ($ _ FILES);' и поставить выход в вашем вопросе –

+0

ничего не outputed – user1257518

ответ

1

$_FILES['images']['name] не является массивом, $_FILES['images'] есть.

Так

while (list($key, $object) = each($_FILES['images'])) 
{ 
    //use $object['name'] or $object['tmp_name'] 
} 
+0

все та же ошибка – user1257518

+0

Это означает, вы не загружаете файлы, или поле ввода в вашем html не соответствует имени 'images' – slash197

+0

, файлы находятся в моей папке'upload 'и user1257518

0

$_FILES['images']['name'] не является массивом! Это значение внутри массива.

Если вы хотите перебрать файлы, вы должны:

while(list($key,$value) = each($_FILES['images']) { 
(...) 
} 
Смежные вопросы