我正在研究Zend Framework 1.11版,我遇到了以下问题:
提交表单后,浏览器会显示“未收到数据:无法加载网页,因为服务器未发送任何数据”。 (在chrome上)和“在加载页面时重置了与服务器的连接。”在firefox上
现在,可能与我的机器有关,因为我无法在具有类似配置的其他机器上重现错误,除了服务器版本(我已升级到apache 2.4.7,其他人有apache 2.2)。
现在请求所经过的代码是:
$form = new Website_Form_ArtUpload();
if ($this->getRequest()->isPost())
{
$response = $this->_getService()->upload($this->getRequest()->getPost());
My_Logger::log(print_r($response));
if (!$response->isValid()) {
if($response->getData() instanceof Zend_Form) {
$form = $response->getData();
}
if($response->hasMessages()) {
My_Logger::log(print_r($response->getAllMessages()));
$this->view->messages = $response->getAllMessages();
}
} else {
$this->_helper->redirector->gotoSimple('new', 'product', 'website');
return;
}
}
内容$ this-> _getService() - > upload()
// Validate the form
$form = new Website_Form_ArtUpload();
if (!$form->isValid($data))
return new My_Service_Response(
My_Service_Response::FAILURE,
$form,
array(My_Model_Message::MESSAGE_TYPE_ERROR => $this->getTranslator()->_('The product cannot be uploaded'))
); //here it halts
所以,一次,我不知道为什么数据不应该有效,因为一切似乎都没问题。但是假设数据确实是无效的,因为响应是失败的并且有消息($this->view->messages = $response->getAllMessages()
记录消息),我不明白为什么不会有一个很好的错误说'产品不能上传”。
如果您需要任何其他代码或任何日志,我很乐意提供它们。
注意:其他有错误的表单会正确返回消息。 请不要告诉我,我们应该拥有相同的服务器版本,我知道,但如果将来某个时候我们想要迁移到2.4,我们宁愿已经解决了这个问题。
答案 0 :(得分:0)
这是由于图像验证MIME类型,文件大小等等。
if (!$form->isValid($data)) {
...
}
此问题已在最新的Zend Framework 1.12.9中修复,您可以从中下载最新版本 https://packages.zendframework.com/releases/ZendFramework-1.12.9/ZendFramework-1.12.9.zip
如果您不需要更新完整框架,只需替换所有文件即可 "库 - > Zend - >验证 - >文件"使用ZendFramework-1.12.9的最新文件
确保在更新后测试所有页面