我的服务器上存有PDF文件。我无法通过网址“sitename / pdfName.pdf”使用Google Chrome(或Ubuntu Chromium)访问该文件;虽然我能够毫无问题地在Internet Explorer或FireFox中访问相同的PDF。
Chrome正在提供此错误:“无法加载PDF文档”
在此链接Error Image中找到附加错误。
答案 0 :(得分:2)
当我们遇到此问题时,起作用和不起作用的PDF文件之间的唯一区别是PDF文档本身的第一行。 这是导致错误的旧PDF与固定版本之间的区别,如在启用了二进制文件的文本编辑器(在本例中为vim -b)中所见:
原始PDF文件:
%PDF-1.6^M%<e2><e3><cf><d3>^M
修复的PDF文件:
%PDF-1.6^M
%<e2><e3><cf><d3>^M
因此问题从根本上得到解决,无需通过安装额外的软件或重新安装chrome来给受害者带来负担。
我不知道这是PDF生成器还是chrome插件出现问题。 根据PDF规范,PDF文档的第一行必须包含PDF版本,但对于^ M是否为有效的行分隔符,我还是不太清楚。
答案 1 :(得分:1)
我们的安全策略中没有object:none,它导致chrome拒绝打开它,并在chrome中按f12键,然后单击“控制台”显示错误消息。
将web.config安全策略更改为object:self解决了该问题
在我们的案例中,我们可以在firefox和IE中打开PDF,但不能在Chrome中打开,因此Chrome对安全策略的执行更为严格。
以下是我未测试过的建议修改:
您可能还会发现Chrome的标题标题为:Content-Type
值:charset=utf-8
。删除它可能会解决它。
另外,在测试时,请继续将请求URL更改为新的sitename/pdfName.pdf?val=1
,然后再进行下一个测试?val=2
,以确保缓存不会干扰响应。上...
答案 2 :(得分:0)
这可能是由于Chrome的内置PDF Viewer无法打开Firmex受保护的PDF文档。
尝试:
虽然它可能不太理想,但它现在是一个很好的选择。
答案 3 :(得分:0)
您可能还会发现Chrome的标题标题为:Content-Type
值:charset=utf-8
。对于IIS,您可以通过将此web.config
文件放在PDF所在的位置来将其删除:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
另外,在测试时,请继续将请求URL更改为新的sitename/pdfName.pdf?val=1
,然后再进行下一个测试?val=2
,以确保缓存不会干扰响应。上...