2016-01-14 4 views
0

Я хочу создать загрузку изображения для загрузки нескольких изображений, сколько требуется пользователю.Zend form множественная загрузка файла не работает

Это то, что у меня есть до сих пор.

$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

Нашел решение, это было не так сильно связано с самим Зендом. Проблема заключается в том, что элемент не является образами [].

Таким образом, решение было добавить 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'], 
     ), 
    ) 
); 
Смежные вопросы