1

如题,现在服务端有一个http://xxxx.pdf的文件
刚开始想的简单用a标签或location.href直接下载,chrome测试只能打开pdf文件预览不能下载
网上搜索后发现a标签有download属性,满心欢喜加上后仍只能打开浏览
请想问下有什么办法可以直接下载文件?
(我是在本地打开的页面,地址是127.0.0.1,和pdf文件地址不一样,难道是跨域让download属性不生效吗)

尚华1 91
2018-10-16 提问
6 个回答
3

直接通过a标签浏览器默认的解析行为无法控制,只能通过响应头来控制浏览器以何种模式解析。返回资源的响应头Content-disposition: attachment; filename=文件名.pdf

0

众说纷纭,不过location.href已经蛮好用的了。预览了之后,右上角有打印图标,点保存就下载了。这个得和客户谈!

0

如果浏览器能够解析的情况下,貌似都会直接浏览,而不是下载,除非是浏览器识别不出来的文件才会弹出下载 .. ,也有些浏览器支持 download 属性。

这个东西我感觉需要后端来做比较靠谱,后端设置响应头(假设后端是 php 语言)即可:

// 设置文件类型
header('Content-type: application/pdf');
// 通知浏览器,该内容作为附件下载,文件名为 download.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// 打印文件内容
readfile('original.pdf');
0

服务器端设置pdf文件的响应头Content-disposition: attachment,点击文件链接就会下载不会打开
参考:https://developer.mozilla.org...

0

跳转 window.loaction.href

-1
看浏览器吧
有的支持download的 用download
有的不识别pdf的 用跳转

撰写答案

你可能感兴趣的

推广链接