2016-02-25 50 views
0

我有一個已知數量的列(例如頂級產品,價格,數量,文件(文件輸入)),但具有未知數量的行,因爲用戶可以根據需要添加行。提交一個多維數組與文件輸入通過POST與PHP

我使用的是多維數組:

name="prod[0][name]" 
name="prod[0][qty]" 
name="prod[0][file]" 

在文章中,我使用

if (isset($_POST['prod'])) 
    { 

     foreach ($_POST['prod'] as $value) 
     { 
      //some code here 
if (isset($_FILES[$value["file"]]["name"]) && 
    ($_FILES[$value["file"]]["size"] > 0) && 
    ($_FILES[$value["file"]]["error"]==0) && 
    $_FILES[$value["file"]]["name"] != "") 
    { 
    //code of uploading file 

} 

    } 

我的問題是我不能得到要上傳的文件,我總是得到錯誤

$ value [「file」] is undefined

請幫助

回答

1

錯誤正確地指出,有你的陣列在該級別中沒有file關鍵。相反,您應該使用foreach循環中的密鑰。

在我的頭頂,它應該是這樣的:

foreach ($_POST['prod'] as $key => $value) { 
          ^^^^ this will be your numeric index 
    //some code here 
    if (isset($_FILES['prod']['name'][$key]['file']) ... 

但你最好做一個var_dump($_FILES['prod']);確認,因爲我不知道PHP如何處理多層次的文件上傳數組。