如题,现在服务端有一个http://xxxx.pdf的文件
刚开始想的简单用a标签或location.href直接下载,chrome测试只能打开pdf文件预览不能下载
网上搜索后发现a标签有download属性,满心欢喜加上后仍只能打开浏览
请想问下有什么办法可以直接下载文件?
(我是在本地打开的页面,地址是127.0.0.1,和pdf文件地址不一样,难道是跨域让download属性不生效吗)
如题,现在服务端有一个http://xxxx.pdf的文件
刚开始想的简单用a标签或location.href直接下载,chrome测试只能打开pdf文件预览不能下载
网上搜索后发现a标签有download属性,满心欢喜加上后仍只能打开浏览
请想问下有什么办法可以直接下载文件?
(我是在本地打开的页面,地址是127.0.0.1,和pdf文件地址不一样,难道是跨域让download属性不生效吗)
服务器端设置pdf文件的响应头Content-disposition: attachment
,点击文件链接就会下载不会打开
参考:https://developer.mozilla.org...
如果浏览器能够解析的情况下,貌似都会直接浏览,而不是下载,除非是浏览器识别不出来的文件才会弹出下载 .. ,也有些浏览器支持 download
属性。
这个东西我感觉需要后端来做比较靠谱,后端设置响应头(假设后端是 php
语言)即可:
// 设置文件类型
header('Content-type: application/pdf');
// 通知浏览器,该内容作为附件下载,文件名为 download.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// 打印文件内容
readfile('original.pdf');
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
5 回答2k 阅读
直接通过a标签浏览器默认的解析行为无法控制,只能通过响应头来控制浏览器以何种模式解析。返回资源的响应头Content-disposition: attachment; filename=文件名.pdf