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";
}
}
}
你便又是。在我的php.ini中,这两个值都是64MB。当我上传的形式最大(9.5)和PHP最大(64)之间的文件,我得到了'文件超过size`错误,但是当我去了PHP的最大值(64)我得到这个与令牌奇怪的错误。所以我的下一个问题是:我仍然不明白为什么文件大小与散列元素有关。在背景中是否有重定向? – jblue 2011-01-25 03:26:10