2

I have following form:

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

When I select many files and submit $this->request->data['MyModel']['myfiles'] contains only last selected file not multiple... $_FILES also contains last selected file...

What I am doing wrong?

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
                            )
                    )
            )
    )

name 属性に配置した空の括弧に、ファイルのインデックスが入力されていることに注意してください。

于 2013-03-15T10:52:56.177 に答える