使用Zend_Form_Element_File和HTML5的多个属性上传多个文件

时间:2012-04-06 10:31:14

标签: forms html5 zend-framework

我想使用Zend_Form_Element_File使用HTML属性multiple上传多个图片。设置元素直观地工作:

$form->addElement(new Zend_Form_Element_File(
    'images',
    array('label' => 'Images:', 'multiple' => 'multiple')
));

当我在上传页面中获得对输入字段的引用并执行$input->receive()时,它只保存一个所选文件。

当我搜索“Zend_Form_Element_File多个文件”之类的内容时,我只会得到显示使用Zend_Form_Element_File::setMultiFile()的结果,这不是我正在寻找的内容。

有什么建议吗?

1 个答案:

答案 0 :(得分:8)

刚刚找到了我自己的问题的答案:

在构造元素(new Zend_Form_Input_File('images', array('isArray' => true)))时,或者通过isArray()方法($input->setIsArray(true)),必须在输入元素上将'isArray'设置为true

一些背景信息以及我最终如何找到这个解决方案:

首先,我意识到我必须将方括号添加到元素的名称,以便多个文件上传起作用,例如: images[]。我不知道这是HTML规范还是PHP需要的东西,但这就是它在这种情况下应该如何工作。

我的下一个问题是当我尝试使用Zend_Form_Element属性设置它们时,name会删除括号。最后,我偶然发现answer by Matthew Weier O'Phinney自己:isArray为您添加[]