2012-03-29 9 views
0

なぜこのエラーが発生するのか、またはそれを修正する方法がわかりません!各()に渡さ 変数ライン -each()に渡される変数が配列またはオブジェクトではありません

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

フルコード -

$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

何も – user1257518

答えて

1

$_FILES['images']['name]は配列ではありません。$_FILES['images']です。

ので

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

まだ同じエラー – user1257518

+0

outputedされていない'とあなたの質問に出力を置くことの意味あなたはファイルをアップロードしていないか、またはあなたのhtmlの入力フィールドが 'images'の名前と一致しません – slash197

+0

ファイルは私のフォルダ 'アップロード'にあり、<入力タイプ=ファイル名= 'イメージ[ – user1257518

0

$_FILES['images']['name']は配列ではありません!これは配列内の値です。

あなたがファイルを反復処理したい場合は、あなたがすべき:

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