当通过编程方式(通过
PHP)以浏览器生成PDF时,渲染的PDF在Firefox和Safari中都能正常显示,但Chrome返回ERR_INVALID_RESPONSE.这是一个有效的PDF – 可以从工作浏览器中保存Adobe Reader / Preview后在本地打开,甚至在从另一个浏览器保存PDF之后甚至可以在Chrome中打开.
PDF文件正在通过file_get_contents()读取,给出当前时间戳,然后传递给浏览器.解决方法将涉及将文件保存到临时位置并重定向用户(至少为Chrome),但这并不理想.
我已经研究过,只能找到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中本地运行正常,但不能在服务器环境中工作.
预先感谢您的任何帮助.
尝试这个
原文链接:https://www.f2er.com/php/132509.html<?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.