下载文件的处理

下载文件的处理

直接a标签处理
<a style="color:#fff"  href="<下载链接>" >导出</a>

js处理可添加token处理:
let elink = document.createElement(‘a’);
elink.download = “文件名字.xls”;
elink.href = ${url}?token=${token}&${hash};
elink.click();

fetch blob处理
 //   let newOptions = {
            //       loginName: localStorage.getItem('username') || '',
            //       'Content-Type': 'application/form-data; charset=utf-8',
            //       token,
            //   }
            //             fetch("/api/insurance/customer/export?begintime=2016-07-01&endtime=2019-07-01&store_id=", { responseType: 'blob'})
            //   .then(response => {
            //       // 注意,该处并非response.json()
            //       return response.blob();
            //   })
            //   .then(res => {
            //       var blob = new Blob([res]);
            //       let elink = document.createElement('a');
            //         console.log(blob)
            //       elink.download = "download.xls";
            //       elink.href = URL.createObjectURL(blob);
            //       elink.click();
            //   })
            //   .catch(e => {
            //     console.log('error:' + e)
            //   })

http处理

function download(filename) {
            let oReq = new XMLHttpRequest();
            oReq.open("GET", "<你的返回流的Action路径>", true);
            oReq.responseType = "blob";

            //  设置验证密匙
            oReq.setRequestHeader("token",token);
            oReq.setRequestHeader("loginName",localStorage.getItem('username') || '');

            oReq.onload = function () {
                var content = oReq.response;
                var blob = new Blob([content]);

                //  创建a标签,下载处理过的文件流
                var elink = document.createElement('a');
                elink.download = filename;
                elink.href = URL.createObjectURL(blob);
                elink.click();
            };
            oReq.send();
        }
axios 下在处理
注意返回值你是否axios统一封装,不然会报错
this.$http("/api/insurance/customer/export?begintime=2016-07-01&endtime=2019-07-01&store_id=", { responseType: 'blob'})
              .then(response => {
                  // 注意,该处并非response.json()
                  return response.blob();
              })
              .then(res => {
                  var blob = new Blob([res]);
                  let elink = document.createElement('a');
                    console.log(blob)
                  elink.download = "download.xls";
                  elink.href = URL.createObjectURL(blob);
                  elink.click();
              })
              .catch(e => {
                console.log('error:' + e)
              })
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值