美文网首页
通过a便签链接直接下载文件(可跨越)

通过a便签链接直接下载文件(可跨越)

作者: 贝尔微微 | 来源:发表于2018-10-12 17:40 被阅读243次

最近开发项目,根据后端给定的url下载文件。实际开发中,浏览器会打开pdf文件或json文件而不会进行下载。

html5 a标签的download属性,代码中添加了此属性,可并不生效。

download浏览器兼容性
要想download属性生效出了浏览器兼容问题外,还需要符合同源策略。刚好我的项目下载地址跨域了,所以downlaod不生效。
再查找资料后,最简单的办法就是改后台服务器配置。这里我使用了nginx服务器做了测试。
nginx配置如下:l配置nginx的location遇到.pdf结尾的连接响应头增加Content-Disposition attachment;这后返回头就是告诉浏览器直接下载文件。
    server {
        # ...
        location ~* \.pdf$ {
                add_header Content-Disposition attachment;
        }
        location / {
        }
        # ...

nginx html文件夹下增加test.html,和test.pdf

<!html>
        <head>
        </head>
        <body>
                <ul>
                        <li><a href="http://127.0.0.1/test.pdf">click me!!local</a></li>
                </ul>
        </body>

</html>

html目录内容如下


htmlDir.jpg

然后启动nginx,浏览器输入localhost/test.html回车,点击clike me 连接,直接出现下载对话框。注意这里输入的host为localhost,而a标签的连接地址是127.0.0.1,所以即使跨域情况下也可以直接实现下载功能。演示效果如下:


test.html.jpg

相关文章

  • 通过a便签链接直接下载文件(可跨越)

    最近开发项目,根据后端给定的url下载文件。实际开发中,浏览器会打开pdf文件或json文件而不会进行下载。 ht...

  • iOS采坑记录

    采坑记录 iOS 通过 Webview点击下载链接问题 Webview点击下载链接,需要通过文件名下载文件,需要通...

  • 不安全的文件下载和上传

    不安全的文件下载漏洞 原理 很多网站都会提供文件下载功能,即用户可以通过点击下载链接,下载到链接所对应的文件。但是...

  • Gin 后台打包excel文件返回前端直接下载

    1、前端点击链接直接下载文件

  • vue 带token下载——XMLHttpRequest + b

    以前的文件下载可以直接通过a标签链接跳转,或者window.open()等都是打开页面方式直接处理。但这次的vue...

  • XMLHttpRequest 链接下载

    XMLHttpRequest 链接下载 通过链接点击下载word文档zip文件等1.XMLHttpRequest ...

  • js下载文件、音频、视频的方式

    下载文件可以直接通过a标签的href属性直接下载,也可以通过Blob对象转换为文件流进行下载。如果要对大数据量或者...

  • jq实现图片下载功能

    很多时候网站中都会有下载功能,一般的下载直接指定a链接然后直接就能下载了,但是有些文件比较特殊,如图片,指定a链接...

  • Java之文件下载

    Java实现文件的下载的方式 超链接方式下载该方式就是一个链接,直接访问服务器中被下载文件的地址。该方式缺点: 如...

  • NSURLSession的使用

    一、基本使用 二、代理方法 三、下载文件 1、小文件下载对于小文件的下载我们可以直接通过NSURLSession ...

网友评论

      本文标题:通过a便签链接直接下载文件(可跨越)

      本文链接:https://www.haomeiwen.com/subject/xrugaftx.html