HTML:forcepdf下载

HTML:forcepdf下载,html,safari,Html,Safari,我的页面中有一个指向PDF文件的链接 Safari直接在网站中打开pdf文件。我想把它下载下来 我已尝试将target=“\u blank”添加到元素中,但如果在浏览器设置中禁用弹出窗口,则无法工作 我怎样才能解决这个问题 感谢您这样做,您需要更改.PDF文件的标题 因此,在.htaccess中,您需要执行以下操作: AddType application/octet-stream .pdf 您需要将此文件的内容配置HTTP头设置为附件 Content-Disposition: attachm

我的页面中有一个指向PDF文件的链接

Safari直接在网站中打开pdf文件。我想把它下载下来

我已尝试将
target=“\u blank”
添加到
元素中,但如果在浏览器设置中禁用弹出窗口,则无法工作

我怎样才能解决这个问题


感谢您这样做,您需要更改.PDF文件的标题

因此,在.htaccess中,您需要执行以下操作:

AddType application/octet-stream .pdf

您需要将此文件的
内容配置
HTTP头设置为
附件

Content-Disposition: attachment; filename=test.pdf

根据您使用的web服务器的不同,配置方式可能有所不同。另一个选择是使用服务器端脚本来传输pdf并设置此头。

您需要使用服务器端脚本(如PHP)动态强制附加头。 下面是一个使用PHP的示例:

<?php
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');
?>
调用脚本:
download.php?file=document

将下载
document.pdf

,但他没有生成pdf文件或通过服务器端脚本传递该文件。他只是提供了一个链接来下载它。正如Darin所说,您只需配置服务器,但这取决于您使用的服务器。例如,您不能一次下载多个文件(除非您将它们放入存档),我建议您将PHP文件设置为通用文件,请参阅我的编辑。使用内容配置,不要发送“我不知道这是什么”标题,而不是“这是PDF”这种方法是在ASKAPACHE中描述的:该站点的作者似乎不属于Apache基金会,因此它的标题有点味道。这里面有很多我也不同意的地方。如果“这是一个pdf”意味着你必须为每个文件添加一个标题,那么这听起来像是一个有效的解决方案,即使它是一个肮脏的解决方案。最好说“这是一个pdf”并添加一个标题说“应该下载”,然后将标题改为“我不知道这是什么”。后者可以工作,前者更好。如果处理静态文件,最好使用服务器配置。更简单。如果他在共享主机上呢?有没有基于Apache的主机如此糟糕,以至于不允许您使用Apache配置指令设置内容处置头?因此,使用服务器端脚本来完成这项任务是唯一的现实选择(如果您不认为“获得半体面的主机”)。不过,能够配置服务器还是更好;)
$file = $_GET['file']; 
readfile($file."pdf");  // Before doing this, check whather the user have permission to download that file.