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

前端之家收集整理的这篇文章主要介绍了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.

原文链接:https://www.f2er.com/php/132509.html

猜你在找的PHP相关文章