前端下载文件

这篇博客介绍了如何在前端通过响应拦截处理文件下载,包括检查响应状态、设置文件类型、创建URL、处理文件名乱码问题以及触发文件下载的方法。内容涉及Blob对象、URL.createObjectURL以及利用a标签实现无刷新下载。
摘要由CSDN通过智能技术生成

1.在响应拦截上配置

if(!res.code){

      const resType = Object.prototype.toString.call(res);

      const isBlob = resType === '[object Blob]';

      if (isBlob || resType === '[object String]')

 return response }

2.在接口加上‘blob’属性

3.返回数据进行处理

const link = document.createElement('a');// 创建a标签
    let blob = new Blob([res.data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}); // 设置文件类型
    link.href = URL.createObjectURL(blob); // 创建URL
     let name = res.headers["content-disposition"].split(';')[1].split('filename=')[1];//获取到文件名但是是乱码
 let fileName=decodeURIComponent(escape(name))
link.download=fileName

    document.body.appendChild(link);
   link.style.display = "none";
    link.click();
    document.body.removeChild(link);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值