CakePHP 的 HTML 5 多文件上传

关于如何使用 CakePHP 中 HTML5 的多文件上传的快速教程

HTML5 带来了使用常规文件输入字段选择多个文件的功能。

我花了一段时间才弄清楚如何做到这一点,所以我认为应该在这里发布它。

首先,我们尝试使用 Cake 输入助手获得类似于这样的 html。

<input name='uploads[]' type=file multiple>

要实现这一点,我们需要使用表单助手,如下所示

<?php
echo $this->Form->create('Model', array('type' => 'file'));
echo $this->Form->input('files.', array('type' => 'file', 'multiple'));
echo $this->Form->end('Upload');
?>

从控制器检查 $this->data 属性将得到类似于这样的内容

Array
(
    [Model] => Array
        (
            [files] => Array
                (
                    [0] => Array
                        (
                            [name] => 20120112_153642.jpg
                            [type] => image/jpeg
                            [tmp_name] => E:\wamp\tmp\phpD71.tmp
                            [error] => 0
                            [size] => 1922765
                        )
                    [1] => Array
                        (
                            [name] => 20120112_153845.jpg
                            [type] => image/jpeg
                            [tmp_name] => E:\wamp\tmp\phpD81.tmp
                            [error] => 0
                            [size] => 1122957
                        )
        )
)

然后,您可以遍历文件数组并像往常一样处理它们。