使用带有CakePHP表单的webkitdirectory

时间:2013-10-08 16:08:29

标签: cakephp file-upload webkit

我正在尝试使用我的表单上传整个文件夹,我发现可以通过'webkitdirectory'进行一些Google研究。但是,对于如何将此选项添加到构建网站的CakePHP表单中似乎没有什么帮助?

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

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

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

非常感谢

格伦。

1 个答案:

答案 0 :(得分: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