在浏览器中打开文件而不是下载

25

我有一个指向PDF文件的 href 链接,当点击它时会下载该文件。我希望这个链接在新页面中打开而不是下载。

<a href="../file/1012">clicking here</a>

我已经查看了一个使用iframe来实现这个功能的网站,但是我宁愿不使用它。


5个回答

36

你的服务器应该返回这个 HTTP 头部:

Content-Type: application/pdf

为了在浏览器中查看,它也应该返回:

Content-Disposition: inline;filename="myfile.pdf"

下载:

Content-Disposition: attachment;filename="myfile.pdf"

1
这是答案!谢谢! - Alexandr
我能否在单个PDF中添加这两个标题“attachment”和“inline”?因为我有两个链接,一个用于查看,另一个用于下载,我无法下载PDF,因为在单击下载链接时,由于添加了inline值,它会在浏览器中打开。请告诉我您对此的建议。 - huzefa biyawarwala
@huzefabiyawarwala - 只需创建两个不同的路径并发送每个不同的标头。例如,mysite.com/myfile.pdf和mysite.com/downloads/myfile.pdf。 - BornToCode

4

在链接中添加 target="_blank" 可以在新窗口打开链接。添加 .pdf 后缀也有助于打开文件。如果您可以控制主机Web服务器,则调整相关文件的标头也会有所帮助,使其内联打开。如果您能够做到这一点,我可以告诉您要设置哪些标头。


2
服务器会告诉浏览器所获取的内容是否是“内联”的。如果您控制服务器,则需要更改服务器设置,以确定是否将有问题的文件作为附件服务。否则,可以使用浏览器插件来覆盖此设置。对于Firefox浏览器,有一个名为“Open in Browser”的插件;http://spasche.net/openinbrowser/

这里有一个技巧,可以让用户控制它:http://www.askapache.com/tools/pdf-cookies-headers-rewrites.html - tripleee

1

BornToCode的答案对于“pdf”是正确的。

对于doc / docx / xls / xlsx等文件,如果您不想使用iframe,可以使用以下方法:

<a href="http://docs.google.com/gview?url=https://sifr.in/img/292/1/courseAndroid.xlsx&embedded=true">Open your excel file</a>

-3
您可以通过添加 target="_blank" 使链接在新窗口中打开。PDF 文件是否在窗口中打开还是下载取决于用户安装的软件,我认为这是不可能控制的。

可以进行控制。 - Trevor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接