当用户点击“下载PDF”链接时,我希望显示下载提示,并且用户可以下载该文件。
目前,用户只是转移到PDF文件的地址。
例如:
<a..[what goes here??]..>Download PDF</a>
似乎有JavaScript和&amp;组合。 PHP需要这样做。
有人能举个例子吗?
答案 0 :(得分:7)
使用此代码重定向到PHP页面:
<?php
header('Content-disposition: attachment; filename=movie.mpg');
header('Content-type: video/mpeg');
readfile('movie.mpg');
?>
您的<a href
代码需要指向特定页面,readfile将调用您的资源
正如旁注,我同意你不应该覆盖浏览器设置,但有时当老板问你时,你只需要这样做。
答案 1 :(得分:6)
如果您使用的是Apache,可以将其放入.htaccess:
<Files *.pdf>
Header set Content-Disposition attachment
</Files>
这将发送所有PDF文档作为下载。必须启用mod_headers。
答案 2 :(得分:3)
You can also use the following code:
<?php
$file = filter_input(INPUT_GET, 'file');
$filename = basename($file);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"{$filename}\";");
readfile("your file path {$file}");
?>
这将提示任何文件扩展名,如(.pdf,.docx,.zip,.csv,.txt,.html,.php等等......),而无需直接打开新浏览器。
答案 3 :(得分:1)
您可以通过向Web服务器响应添加HTTP标头来强制浏览器保存链接的内容:
Content-Disposition: attachment; filename=<default filename to save as>
另一方面,我并没有真正看到覆盖用户浏览器配置的重点,这通常会告诉我们默认情况下应该在浏览器中打开PDF文档,在单独的PDF查看器中打开还是保存到磁盘。
答案 4 :(得分:1)
您可以在标记上使用HTML5 download
属性。
<a href="http://love4cats.com/kitten-catalogue.pdf" download>Download the CATalogue</a>
您应该检查分析并确保目标浏览器支持该属性。有关浏览器支持,请参阅caniuse.com entry页面。
答案 5 :(得分:0)
目前尚不清楚你的意思
目前,用户只是转移到PDF文件的地址。
但我建议采用一种简单的方法:
<a href='http://example.com/download.pdf'>Download PDF</a>
选择下载或打开文件更像是浏览器的设置。
答案 6 :(得分:0)
我不相信你的问题有一个神奇的javascript / PHP解决方案,即香草HTML:
<a href="docco.pdf" title="this is a link to a pdf">download the PDF</a>
将执行所需的操作,它将指示浏览器请求资源“docco.pdf”,由浏览器(以及任何插件)来做这件事。
例如,有一个firefox插件“PDF download”,它为用户提供了如何处理弹出窗口的选择。