2015-12-07 38 views
-1

我有幾個文件輸入一個HTML表單,像這樣:

<form action="/form/update" method="post" enctype="multipart/form-data"> 
    ... 
    <input type="file" name="FormName[File1]" > 
    <input type="file" name="FormName[File2]" > 
    ... 
</form> 

然而,當我提交表單,該$_FILES PHP變量貌似鍵混合。

Array 
(
    [Client] => Array 
     (
      [name] => Array 
       (
        [File1] => avatar.png 
        [File2] => logo.png 
       ) 

      [type] => Array 
       (
        [File1] => image/png 
        [File2] => image/png 
       ) 

      [tmp_name] => Array 
       (
        [File1] => C:\xampp\tmp\phpE97D.tmp 
        [File2] => C:\xampp\tmp\phpE97E.tmp 
       ) 

      [error] => Array 
       (
        [File1] => 0 
        [File2] => 0 
       ) 

      [size] => Array 
       (
        [File1] => 17719 
        [File2] => 14117 
       ) 

     ) 

) 

這是具有數組名稱的字段的正常行爲嗎? $_FILES的結構應該不是$_FILES['FormName']['File1']['name'],而不是$_FILES['FormName']['name']['File1']

+0

你爲什麼使用'name =「formName [file1]」'而不只是'name =「file1」'? – acupajoe

+1

@acupajoe,以匹配Yii2後端。如果遵循其命名約定,則可以更輕鬆地將表單數據加載到模型中。 – spencer4of6

+1

[處理多維$ \ _ FILES數組]可能的重複(http://stackoverflow.com/questions/7464893/processing-multi-dimensional-files-array) – showdev

回答

1

「這是數組名稱字段的正常行爲嗎?」

Yes

當上述表單提交,陣列$ _FILES [ 'userfile的'],$ _FILES [ 'userfile的'] [ '名稱'],和$ _FILES [ 'userfile的'] [ '尺寸']將被初始化......這些中的每一個都是提交文件的適當值的數字索引數組。

這同樣適用於非數字索引數組。如果不是這種方式,則無法循環訪問$_FILES的內容並獲得可預測的輸出。