用于查看或下载PDF的网页链接

时间:2012-02-21 20:49:55

标签: html html5 pdf hyperlink

我之前从未考虑过这个问题,但有没有办法控制用户点击PDF文件链接时会发生什么?

我的老板想提供两个链接来执行以下操作: 1.在浏览器中查看此PDF 2.下载PDF

有办法做到这一点吗?我不考虑这些事情,大多数现代浏览器都会在浏览器中打开PDF。如果我想下载它,我右键单击下载。有什么方法可以强迫行动吗?

由于

3 个答案:

答案 0 :(得分:3)

您可以链接到资源,也可以将数据流式传输到浏览器。这是你们唯一的两个选择。

如果链接到文件:<a href="file.pdf">是否在浏览器中打开,则完全取决于最终用户的浏览器和操作系统首选项。

您可以通过将文件流式传输到浏览器来强制下载文件,这通常会触发浏览器的save as对话框。

但是,从用户体验的角度来看,最好的选择是简单地链接到PDF并让用户知道他们即将点击PDF链接......这样他们就可以决定他们用它做什么了。

答案 1 :(得分:1)

使用服务器端技术有几种方法:

您可以链接到提供要下载的文件的.net / php页面,例如:

<a href="/ServeFile.aspx?filename=sample.pdf">download pdf</a>

或显示:

<a href="/sample.pdf">view pdf</a>

如果您使用itextsharp生成pdf,可以将以下内容添加到Response对象以强制下载:

Response.AddHeader(
  "Content-Disposition",
  "attachment; filename=itext.pdf"
);

或以下内容在同一窗口中打开:

Response.AddHeader(
 "Content-disposition",
 "inline; filename=itext.pdf");   

用户可以随时将其adobe reader插件设置为始终下载,在这种情况下,浏览器窗口显示将无效。

答案 2 :(得分:1)

PDF的显示方式基于用户的浏览器版本和配置。例如,Chrome默认包含PDF查看器,但用户可以更改插件的行为(自动打开PDF,禁用,询问用户)。

执行此操作的一种方法是设置ContentType和Content-Disposition,以便浏览器知道如何处理请求。例如,在ASP.NET中你可以这样做:

  

Response.ContentType =“application / pdf”;

     

Response.AddHeader(“Content-Disposition”,“attachment; filename = filename.pdf”);

披露:我从this article

劫持了此代码

如果这有帮助,请告诉我。