3

我注意到一些奇怪的事情,想知道是否有人可以在他们这边测试我的代码并让我知道他们是否得到相同的东西。

我有一个真正简单的表单(请参阅下面的完整表单代码和操作代码),它只有一个文件上传 + 隐藏哈希 + 提交按钮。文件上传的最大大小限制设置为 10000000(约 9.5MB)。

当我尝试上传大于限制的文件时,表单不应该验证,但我在哈希令牌本身中收到错误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";
        }
    }

}
4

1 回答 1

3

这似乎与您的 php.ini 中的 post_max_size 或 upload_max_filesize 值有关。例如,post_max_size 的默认值为 8M,小于您的最大文件大小。

于 2011-01-25T02:59:50.560 回答