文件下载方案

平常会有产品提需求,需要将页面的数据下载下来。一般有下面这些方案

上传到云空间

后台生成数据后调用云空间的 API 上传,将返回的 url 地址写到 DB 中对应的字段。这种方案具有一个明显的特点,麻烦。如果仅仅是内部使用,也没有必要。

使用 Nginx 静态文件下载功能

可以直接将下载请求发到 Nginx 机器上,Nginx 将配置的静态文件目录中对应的文件返回给浏览器。

http://10.157.1.1/download/offline_export/brand-20171127_1511772246.csv

Nginx 配置如下:

server {
        listen       80;

        server_name  10.157.1.1;
        
        #ssl                  on;
        ssl_certificate      /home/qspace/etc/ssl/a.crt;
        ssl_certificate_key  /home/qspace/etc/ssl/b.key;

        ssl_session_timeout  5m;
        ssl_session_cache    shared:SSL:100m;

        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;
  
        location /dowload/ {
                root /data/qspace/mmsearch/htdocs;
                add_header Content-Disposition 'attachment;filename="*.csv"';

                rewrite ^/$  /cgi-bin/readmgr/index.html;
          }

}

点击 URL 直接跳转到文件下载设置

在服务器的响应数据里加上

response.addHeader("Content-Disposition","attachment")

这样点击 URL 就会直接下载文件

参考

Nginx 的 root 指令

Download-a-file-without-server-request

header中Content-Disposition的作用

转载于:https://my.oschina.net/lvyi/blog/1580502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值