2

我有以下表格:

<form enctype="multipart/form-data" method="post" accept-charset="utf-8">
    <input type="file" name="data[MyModel][myfiles]" multiple="multiple">
</form>

当我选择许多文件并提交时$this->request->data['MyModel']['myfiles']只包含最后选择的文件而不是多个...$_FILES还包含最后选择的文件...

我做错了什么?

4

2 回答 2

6

IE不支持多文件上传,safari也

用这个:

echo $form->input('files. ', array(
    'label' => 'Files:',
    'type' => 'file',
    'multiple' => 'multiple',
));
于 2013-03-15T11:31:24.887 回答
5

这是因为文件输入需要具有正确的名称属性。这里是例子^

<input type="file" name="data[Album][images][]"/>

请注意,它的末尾有一个空括号——这是您需要在文件输入中添加的内容。提交表单后,您的数据将具有以下结构:

Array
    (
        [Album] => Array
            (
                [images] => Array
                    (
                        [0] => Array
                            (
                                [name] => goldenWS.jpg
                                [type] => image/jpeg
                                [tmp_name] => E:\xampp\tmp\php8EB5.tmp
                                [error] => 0
                                [size] => 1107065
                            )

                        [1] => Array
                            (
                                [name] => ground_floor__please_by_ether-d4c1ru7.jpg
                                [type] => image/jpeg
                                [tmp_name] => E:\xampp\tmp\php8EC6.tmp
                                [error] => 0
                                [size] => 1027305
                            )
                    )
            )
    )

请注意,我们在名称属性中放置的空括号现在填充了文件的索引。

于 2013-03-15T10:52:56.177 回答