我在Chrome中使用PHP阅读PDF文件时遇到问题。
下面的代码是我如何在PHP中
$path = "actually file path";
header("Pragma: public");
header("Expires: 0");
header("Content-type: $content_type");
header('Cache-Control: private', FALSE);
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Disposition: inline; filename=\"$filename\"");
header('Content-Transfer-Encoding: binary');
header('Content-Length' . filesize($path));
ob_clean();
flush();
readfile($path);
字符串
在这里,我将Content-Disposition设置为inline。因为我想显示pdf文件,如果用户浏览器有内置的pdf查看器插件。你可能知道,Chrome有内置的PDF查看器。
问题是我在服务器上有一堆PDF文件。只有一部分可以在Chrome浏览器上看到。我不明白为什么其他人不能以同样的方式工作。我已经检查了每个文件的权限。这似乎不是许可问题。
有谁知道是什么问题吗?- 谢谢-谢谢
8条答案
按热度按时间dfddblmv1#
我也一直在纠结这个问题。这是我在不同浏览器中得到的最接近一致结果的结果。我认为你可能遇到问题的原因是如果一些PDF文件太大,readfile()无法正确处理。试试这个:
字符串
au9on6nz2#
对我来说,添加以下标题修复了这个恼人的Chrome错误(?):
字符串
p4rjhz4m3#
我有类似的问题,但我注意到顺序问题。似乎
; filename=
必须有引号围绕它,Content-Disposition: attachment
试试这个:字符串
gg58donl4#
我已经修好了
字符串
krcsximq5#
有同样的问题,chrome没有显示内联PDF,卡在加载。解决方案是添加
header('Accept-Ranges: bytes')
。我的完整代码:
字符串
idv4meu86#
在浪费了几个小时之后...我添加了评论,指出@Kal有唯一有效的解决方案。但不知何故,这还不够......当Chrome这样做时,这是一个不可能和令人沮丧的问题:
错误无法加载PDF文档。重新装填
x1c 0d1x的数据
这是结束折磨的差异。
字符串
大约30分钟,我愚弄了这个的各种变体......但我不能不将其固定到“* 添加HTTP 200*”,不是“* 添加字节 ”,不是“ 引用您的文件名 ”,不是“ 分隔文件结尾 *”。这些都没用
6g8kf2rb7#
我遇到了这个问题,挣扎了将近6个小时,终于让它工作了。我的解决方案与上述答案类似,但上述答案并不完整。有三个步骤来解决这个问题。
字符串
型
型
100%工作溶液。如果你有任何问题,让我知道:)
yftpprvb8#
上面的解决方案对我来说都不起作用,但是下面的代码起作用了。你所需要做的就是按块发送文件。
字符串