2015-05-27 2 views
0

Текущая форма:Файл проверки формы загрузки утратившим

$main = new Zend_Form_SubForm(); 
$kids = new Zend_Form_SubForm(); 

$number = $main->addElement(... attribs and so on ...); 

$this->addSubForms(array('main'=>$main,'kids'=>$kids)); 

Когда я добавляю этот файл поля закачивать в моей форме:

for($index = 1; $index <= 10; $index++) { 

      $name = 'Image'.$index; 
      $label = 'Image'.$index; 

      $image = new Zend_Form_Element_File($name); 
      $image->setLabel($label) 
       ->addValidator('Count', true, 1) 
       ->addValidator('Size', false, 10485760) 
       ->addValidator('Extension', false, 'jpg,jpeg,tif,tiff,eps'); 
      $kids->addElement($image); 
} 

Следующая часть в мой контроллер не сможет:

$post = $this->_request->getPost(); 
if($form->isValid($post)) 

И не будет выхода formerror.

Сообщение об ошибке включено, также следующая часть (если недействительна) не возвращает предупреждения или сообщения об ошибке!

else { 
    print_r($form->getMessages()); 
    print_r($form->getErrors()); 
    print_r($form->getErrorMessages()); 
} 

Я использую стандартный Zend формы IsValid функции:

public function isValid($data) 
{ 

    $isValid = parent::isValid($data); 
    return $isValid; 

} 

Что может быть не так?

К слову: Распечатка данных сообщений также выглядит хорошо. И я уже обновил Zend до версии 1.12.13 без каких-либо улучшений :(

ответ

0

Если кто-то заинтересован и может быть та же самая проблема, я, наконец, получил решение:

Решение 1: Проблема заключалась в том, что представленные $ _FILES были ограничены 20 полями загрузки файлов. См. Php ini max_file_uploads ->http://php.net/manual/en/ini.core.php#ini.max-file-uploads. И поэтому Zend всегда говорил, что форма не проверена. Странно, потому что сообщение об ошибке не дает вам Подсказка.

Btw, если вы установили расширение PHP suhosin параметр из PHP будет переписан: Он несет свой собственный предел загрузки: suhosin.upload.max_uploads

Решение 2: Другим решением является использование $form->isValidPartial вместо $form->isValid. В этом случае не существующие элементы файла не проверяются.

Пожалуйста, взгляните также на исправления здесь, если вы заполните пустые поля формы: http://framework.zend.com/issues/browse/ZF-11707