Zend Framework - 未收到任何数据

时间:2014-08-28 07:49:58

标签: php apache zend-framework apache2.4

我正在研究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,我们宁愿已经解决了这个问题。

1 个答案:

答案 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的最新文件

确保在更新后测试所有页面