2013-04-01 84 views
0

我想上傳多張圖片。 img[]包含要上傳的所有圖像文件。值已成功插入到與commas(,)相關的數據庫中。但圖像未上載到名爲photos的指定文件夾。在陣列內上傳圖片不起作用

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


$n=$_FILES["img"]["name"]; 
$t=$_FILES["img"]["tmp_name"]; 
$image=implode(",",$n); 


      $ex=explode(",",$image); 
     $i=0; 
     foreach($ex as $item) 
     { 

      move_uploaded_file($_FILES["img[$i]"]["tmp_name"],"photos/$ex[$i]"); 

      $i++; 
     } 
+0

對不起的人,但你的代碼是壞的。多文件上傳不是「5分鐘做事」。如果有人會用'<?php phpinfo()'上傳php腳本,那麼你可能不會這麼想。您需要編寫一個可處理文件驗證的類(包括大小和擴展名) – Yang

+0

另外,'move_uploaded_file()'成功返回'TRUE',失敗時返回'FALSE'。在你的代碼中無處檢查 - 你不知道它們是否已經上傳 – Yang

+0

你試過'var_dump($ _ FILES)'來看看這個數組有什麼結構?因爲當你上傳很多文件時它應該是多維數組。閱讀此http://www.php.net/manual/en/features.file-upload.multiple.php – piotrekkr

回答

0

我覺得你的正確的代碼應該是

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


$n=$_FILES["img"]["name"]; 
$t=$_FILES["img"]["tmp_name"]; 
$image=implode(",",$n); 

// no need to explode here 

    foreach($n as $key=>$item) 
    { 
     //name will be there in $items 
     // use temp_name of same file for which you are using name using $_FILES["img"]["tmp_name"][$key] 
     move_uploaded_file($_FILES["img"]["tmp_name"][$key],"photos/$item"); 
    } 
+0

偉大..它wOrks ..非常謝謝.. @dreamCoder – Anoop

+0

@Anoop感謝沒有理由':) 「很高興幫助你 – alwaysLearn