php – 在Chrome中生成ERR_INVALID_RESPONSE的PDF生成结果

当通过编程方式(通过 PHP)以浏览器生成PDF时,渲染的PDF在Firefox和Safari中都能正常显示,但Chrome返回ERR_INVALID_RESPONSE.这是一个有效的PDF – 可以从工作浏览器中保存Adobe Reader / Preview后在本地打开,甚至在从另一个浏览器保存PDF之后甚至可以在Chrome中打开.

PDF文件正在通过file_get_contents()读取,给出当前时间戳,然后传递给浏览器.解决方法将涉及将文件保存到临时位置并重定向用户(至少为Ch​​rome),但这并不理想.

我已经研究过,只能找到bug reports dating from 2008.

我有一个标题标题错误.生成PDF后,将以下标题发送到浏览器(再次在FF,Safari和IE中正常工作):

header('Content-type:application/pdf');
    header("HTTP/1.1 200 OK");

在Stack Overflow搜索后,我还尝试添加以下标题,但无效:

header("Content-transfer-encoding: binary");
    header('Accept-Ranges: bytes');

Chrome需要哪些标题?有没有人有获取动态生成的PDF显示在Chrome中的经验?

编辑:我的一个更突出的问题是可能导致这在Chrome中本地运行正常,但不能在服务器环境中工作.

预先感谢您的任何帮助.

尝试这个
<?PHP
$filename = 'Physical Path to PDf file.pdf';
$content = file_get_contents($filename);

header("Content-type:application/pdf");

// It will be called downloaded.pdf
header("Content-disposition:inline;filename='".basename($filename)."'");   
header('Content-Length: '.strlen( $content ));

// The PDF source is in original.pdf
readfile($filename);
?>

<html>
<body>
...
...
...

Make sure that above header code is called before output of PHP script is sent to browser.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...