在提交带有文件上传输入的表单时,我遇到了 Zend 1.12.3 的障碍。一切似乎都很好,但由于某种原因,表单无法验证。但是,当运行 getMessages() 来检索错误时,列表显示为空白。这里有什么见解吗?谢谢!
这是我的控制器:
public function makeOfferAction()
{
$form = new Application_Form_Lawyer_MakeOffer();
if ($this->req->isPost())
{
if ($form->isValid($this->req->getPost()))
{
....
}
}
}
$this->view->makeofferForm = $form;
}
这是我的表格:
class Application_Form_Index_MakeOffer extends Zend_Form
{
public function init()
{
$this->setMethod('post')
->setAttrib('id','form-make-offer');
$file = new My_File();
$this->addElement('file', 'upload', array(
'label' => 'Attach Document',
'ignore' => true,
'destination' => $file->getDestinationPath(),
));
$this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Make Offer',
'class' => 'button large right'
));
}
}
这是我的观点:
<?= $this->makeofferForm ?>
还尝试手动写出具有相同错误的表单:
<form id="form-offer" enctype="multipart/form-data" method="post" action="<?= $this->url() ?>">
<?= $this->makeofferForm->upload ?>
<?= $this->makeofferForm->submit ?>
</form>
更新:
只是为了跟进这一点,问题不在形式上;但是,在处理文件上传时,表单编码确实很重要。问题是表单是通过 AJAX 调用提交的,并且会阻止文件上传作为安全功能。