0

我正在尝试使用我的表单上传整个文件夹,从我发现的一些谷歌研究中我发现“webkitdirectory”可以实现。但是,关于如何将此选项添加到内置站点的 CakePHP 表单中似乎没有什么帮助?

我认为如果他们坚持上传整个文件夹(我认为这在网站上不是一个好主意),我可能需要做些什么。是使用标准 html 表单构建而不是使用 CakePHP 助手构建它吗?

关于我如何做到这一点的任何想法?

如果不是,它可能会被添加到新的 CakePHP 版本中!

非常感谢

格伦。

4

1 回答 1

1

Form助手应该能够创建适当的输入字段。这是一些示例代码:

echo $this->Form->input('file', array
(
    'type' => 'file',
    'name' => 'data[Model][file][]',

    // would work too, but the file data would then
    // be found in CakeRequest::$params['form']
    // 'name' => 'file[]',

    'multiple' => true,
    'webkitdirectory' => 'webkitdirectory'
));

它将创建以下 HTML:

<div class="input file">
    <label for="ModelFile">File</label>
    <input type="file" name="data[Model][file][]" multiple="multiple" webkitdirectory="webkitdirectory" id="ModelFile"/>
</div>

注意使用'webkitdirectory' => 'webkitdirectory',这是必要的,因为Form助手不会将webkitdirectory其识别为布尔属性,即使用true会导致生成的属性值为1,这有效,但 AFAIK 实际上是无效的。

另请参阅http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::input

于 2013-10-08T16:38:08.477 回答