HTTP标头问题

时间:2011-04-13 13:35:58

标签: php symfony-1.4

我正在使用symfony 1.4。我创建了一个pdf并在新窗口中显示。在我点击其他链接后显示pdf后,我得到了以下类型的代码。我认为它显示了我的html源文件。

如何解决此问题?

  

141070HTTP / 1.1 200 OK日期:星期三,13   2011年4月13:22:07 GMT服务器:   Apache / 2.0.63(Unix)mod_ssl / 2.0.63   OpenSSL的/ 0.9.8e - FIPS的RHEL5   mod_auth_passthrough / 2.1   mod_bwlimited / 1.4 FrontPage / 5.0.2.2635   X-Powered-By:PHP / 5.3.4过期:周四,   1981年11月19日08:52:00 GMT   缓存控制:无存储,无缓存,   必须重新验证,post-check = 0,   pre-check = 0 Pragma:no-cache   保持活跃:超时= 15,最大= 94   连接:保持活力   转移编码:分块   内容类型:text / html;字符集= utf-8的   ...... ......

这是我的symfony代码,用于显示pdf。

    $this->getResponse()->clearHttpHeaders();
    $this->getResponse()->setHttpHeader('Content-Disposition', 'inline; filename="' . basename($path) . '"');
    $this->getResponse()->setHttpHeader('Content-type', 'application/pdf');
    $this->getResponse()->setHttpHeader('Pragma: public', true);
    $this->getResponse()->setHttpHeader('Expires', 0);
    $this->getResponse()->setHttpHeader('Content-Transfer-Encoding', 'binary');
    $this->getResponse()->setHttpHeader('Content-Length', filesize($path));
    $this->getResponse()->sendHttpHeaders();
    ob_clean();
    flush();
    echo readfile($path);

1 个答案:

答案 0 :(得分:1)

141070来自哪里?它是第一个发送给客户端的,它应该是HTTP/1.1 200 OK,它会触发HTML呈现。

客户端可能不知道如何处理数据,因此直接呈现它。