Загрузка файла + хеш дает мне проблему, когда размер больше максимального размера - PullRequest
3 голосов
/ 25 января 2011

Я заметил кое-что странное, и мне было интересно, может ли кто-нибудь проверить мой код на их стороне и сообщить мне, получают ли они то же самое.

У меня действительно простая форма (см. Полный код формы икод действия ниже), который имеет только файл загрузки + скрытый хеш + кнопка отправки.Максимальный размер загружаемого файла - 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";
        }
    }

}

1 Ответ

3 голосов
/ 25 января 2011

Похоже, это связано с вашими значениями post_max_size или upload_max_filesize в вашем php.ini. Например, значение по умолчанию post_max_size равно 8M, что меньше вашего максимального размера файла.

...