当“在浏览器中显示PDF”选项未选中时,是否有一种方法强制PDF文件在浏览器中打开?
我尝试使用嵌入标签和一个iframe,但它只有当该选项被选中时才会工作。
我该怎么办?
当“在浏览器中显示PDF”选项未选中时,是否有一种方法强制PDF文件在浏览器中打开?
我尝试使用嵌入标签和一个iframe,但它只有当该选项被选中时才会工作。
我该怎么办?
当前回答
正确的格式是application/pdf,而不是application/force-download。这看起来像是对一些传统浏览器的黑客攻击。如果可以,总是使用正确的mimetype。
如果你可以控制服务器代码:
强制下载/提示:使用头(“Content-Disposition”,“附件;文件名= myfilename.myextension "); 浏览器尝试打开它:使用头("Content-Disposition", "inline;文件名= myfilename.myextension ");
无法控制服务器代码:
使用HTML5下载属性。它使用在视图端指定的自定义文件名。
注意:我更喜欢在服务器端设置文件名,因为您可能有更多的信息,可以使用公共代码。
其他回答
要么使用
<embed src="file.pdf" />
如果嵌入是一个选项或我的新插件,PIFF: https://github.com/terrasoftlabs/piff
如果你链接到一个。pdf文件,它会在浏览器中打开。 如果该框未选中,它应该链接到一个。zip以强制下载。
如果.zip文件不是一个选项,那么使用PHP中的头文件强制下载
header('Content-Type: application/force-download');
header('Content-Description: File Transfer');
哎呀,我上一篇文章中有打字错误。
header("Content-Type: application/force-download");
header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=\"".$name."\";");
如果你不想让浏览器提示用户,那就用"inline"代替"attachment"作为第三个字符串。内联工作得很好。PDF立即显示,而不需要用户单击“打开”。我使用了“附件”,这将提示用户打开,保存。我尝试改变浏览器设置螺母,它不能阻止提示。
正确的格式是application/pdf,而不是application/force-download。这看起来像是对一些传统浏览器的黑客攻击。如果可以,总是使用正确的mimetype。
如果你可以控制服务器代码:
强制下载/提示:使用头(“Content-Disposition”,“附件;文件名= myfilename.myextension "); 浏览器尝试打开它:使用头("Content-Disposition", "inline;文件名= myfilename.myextension ");
无法控制服务器代码:
使用HTML5下载属性。它使用在视图端指定的自定义文件名。
注意:我更喜欢在服务器端设置文件名,因为您可能有更多的信息,可以使用公共代码。
你可以通过以下方式做到这一点:
<a href="path to PDF file">Open PDF</a>
如果PDF文件在某个文件夹中,而该文件夹没有权限直接访问该文件夹中的文件,那么你必须通过使用.htaccess文件设置绕过一些文件访问限制:
<FilesMatch ".*\.(jpe?g|JPE?G|gif|GIF|png|PNG|swf|SWF|pdf|PDF)$" >
Order Allow,Deny
Allow from all
</FilesMatch>
但是现在只允许某些必要的文件。
我已经使用了这段代码,它工作得很完美。