前端如何实现http路径的pdf文件下载?

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

阅读 3.2k
评论 2018-10-16 提问
    6 个回答

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

    评论 赞赏 2018-10-16

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

      评论 赞赏 2018-10-16

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

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

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

            跳转 window.loaction.href

            评论 赞赏 2018-10-17
              看浏览器吧
              有的支持download的 用download
              有的不识别pdf的 用跳转
              评论 赞赏 2018-10-24
                撰写回答

                登录后参与交流、获取后续更新提醒