2016-01-14 30 views
0

我想创建一个图片上传来上传多个图片,就像用户需要的一样多。Zend表单多个文件上传不起作用

这就是我到目前为止。

$this->addElement('file', 'images', 
    array(
     'label'   => $this->getView()->Translate('This_Label'), 
     'valueDisabled' => true, 
     'multiple'  => true, 
     'validators' => array(
      ['Extension', false, 'jpg,png,gif'], 
     ) 
    ) 
); 

然而即使元素允许多个上传还是临危只有一个。在坚持我的代码如下,但我仍然只得到最后一个文件调试。

$this->setEnctype(Zend_Form::ENCTYPE_MULTIPART); 

$upload = new Zend_File_Transfer_Adapter_Http(); 
$files = $upload->getFileInfo(); 
foreach ($files as $file => $fileInfo){ 
    if ($upload->isUploaded($file)) { 
     if ($upload->isValid($file)) { 
      if ($upload->receive($file)) { 
       $info = $upload->getFileInfo($file); 
       $tmp = $info[$file]['tmp_name']; 
       Zend_Debug::dump($info, $tmp); 
      } 
     } 
    } 
} 

如何让元素上传多个文件? 我想要一个本地Zend_Form元素,但不想重复元素(如param multiFile所做的那样)。

回答

1

找到了解决方案,这与Zend本身没什么关系。 这个问题存在于不是图像[]的元素中。

因此,解决办法是添加ATTRIB IsArray的= TRUE如下:

$this->addElement('file', 'images', 
    array(
     'label'   => $this->getView()->Translate('This_Label'), 
     'valueDisabled' => true, 
     'isArray'  => true, 
     'multiple'  => true, 
     'validators' => array(
      ['Extension', false, 'jpg,png,gif'], 
     ), 
    ) 
);