Я заметил кое-что странное, и мне было интересно, может ли кто-нибудь проверить мой код на их стороне и сообщить мне, получают ли они то же самое.
У меня действительно простая форма (см. Полный код формы икод действия ниже), который имеет только файл загрузки + скрытый хеш + кнопка отправки.Максимальный размер загружаемого файла - 10000000 (около 9,5 МБ).
Когда я пытаюсь загрузить файл, размер которого превышает лимит, форма не должна проверяться, но я получаю сообщение об ошибке в самом хеш-маркере Value is required and can't be empty
.Может кто-нибудь подтвердить?Похоже, токен был уничтожен.Я предполагаю, что это может произойти в случае перенаправления или чего-то еще, но я не делаю никаких перенаправлений, если только что-то не происходит в фоновом режиме, что я не замечаю.
Вот код формы икод моего действия
class Application_Form_TestForm extends Zend_Form
{
public function init()
{
$file = new Zend_Form_Element_File('file');
$file->setDestination(APPLICATION_PATH);
$file->addValidator('Size', false, 10000000);
$file->setMaxFileSize(10000000);
$this->addElement($file);
$hash = new Zend_Form_Element_Hash('hash');
$hash->setIgnore(true)
->setSalt('mysalt');
$this->addElement($hash);
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Test')
->setIgnore(true);
$this->addElement($submit);
$this->setAttrib('enctype', 'multipart/form-data');
$this->setMethod('post');
}
}
В моем контроллере я делаю обычную проверку
public function indexAction()
{
$form = new Application_Form_TestForm();
$this->view->form = $form;
if($this->_request->isPost()){
echo "post";
if($form->isValid($this->_request->getPost())){
echo " valid";
}
}
}