我正在使用 Zend_Form_Element_File 来验证某些文件属性。有问题的文件输入元素是动态创建的 - 即。它可以是形式,但不需要;但是,如果是,并且文件已通过它提交,则它需要满足某些标准。
当表单不包含文件元素时,我遇到了“文件超出定义的 ini 大小”问题。这是预期的行为吗?
请记住,FormUpload 应该验证两个表单元素。我可以使用不同的 Zend_Forms,这取决于 $_FILES 数组是否为空,但感觉是一个糟糕的解决方案,因为 Zend_Form 应该为我验证数据/数据字段。
复制问题的代码:
<?php
class FormUpload extends Zend_Form
{
public function init()
{
$upload = new Zend_Form_Element_File('upload');
$upload->setRequired(false);
$this->addElement($upload);
}
}
var_dump($_POST, $_FILES);
if (!empty($_POST))
{
$form = new FormUpload();
if ($form->isValid($_POST))
{
$values = $form->getValues();
var_dump($values);
}
else
var_dump($form->getMessages());
}
?>
<form method='post' enctype="multipart/form-data">
<input type='hidden' name='something' value='something'/>
<input type='submit' value='submit'/>
</form>
<form method='post' enctype="multipart/form-data">
<input type='file' name='upload'/>
<input type='submit' value='submit'/>
</form>
我将其视为错误-解决此问题的方法是始终使用经过验证的名称的输入字段;否则会出现这个错误。