在Chrome上PDF重定向显示空白
我有这个问题,我无法解决我的生活。
我有一个简单的PHP脚本,重定向到PDF文件,代码如下:
$file = "url/to/file";
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Description: File Transfer");
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="somefile.pdf"');
header('Content-Transfer-Encoding: binary');
readfile($file);
exit();
如果我直接在浏览器标签中试用它,它会起作用,它会连接到Chrome的pdf插件并显示给我。 如果我尝试将其放在另一页的链接上,或尝试通过javascript中的window.open打开它,它会显示一个空白页面。 这只发生在Chrome和Safari,Firefox和Edge显示它很好。 在任何人询问之前,我已经尝试过使用和不使用缓存和内容描述标头,我从这里找到的答案中获得了这些,这只是我拥有的最后一个版本。
有任何想法吗?
提前致谢
编辑
我忘了提及,即使我重新加载页面,问题仍然存在于空白标签上。 我已经检查了devtools上的Network选项卡,它们显示了bot请求和响应(重定向和直接响应)的相同结果,但重定向不起作用。 此外,任何一种都不会有任何错误。
另外,我已经尝试了没有退出(),不会改变一件事情。
正如ylva的评论中所提到的,对于任何寻找这个问题的人来说,答案都可以在这里找到
使用默认PDF查看器从Chrome IFRAME打开PDF失败
主要的是,Chrome的PDF阅读器将PDF作为应用程序嵌入,因此,如果PDF文件的链接来自iframe,并且此iframe具有sandbox属性,则chrome不会让它运行,您必须移除沙箱属性或必须安装您自己的PDF查看器。 所以它与PHP代码本身无关。
干杯
链接地址: http://www.djcxy.com/p/36435.html上一篇: PDF redirection shows blank on Chrome
下一篇: iFrame's pdf content gets loaded twice in Chrome and Opera