HTML文件输入导致混合$ _FILES变量

时间:2015-12-07 21:24:04

标签: php html

我有一个包含多个文件输入的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']吗?

1 个答案:

答案 0 :(得分:1)

&#34;对于具有数组名称的字段,这是正常行为吗?&#34;

Yes

  

提交上述表单后,数组$ _FILES [&#39; userfile&#39;],$ _FILES [&#39; userfile&#39;] [&#39; name&#39;]和$ _FILES [&#39; userfile&#39;] [&#39; size&#39;]将被初始化...其中每个都将是提交文件的适当值的数字索引数组。

同样适用于非数字索引的数组。如果不是这样的话,你就无法遍历$_FILES的内容并获得可预测的输出。