1. 首页
  2. 前端
  3. 开发框架
  4. Vue

前端导出二进制文件

用axios为例子

// data是后端返回的二进制数据
const content = data;
const blob = new Blob([content]);
const fileName = '评分报表.xls';
if ('download' in document.createElement('a')) {
    // 非IE下载
    const elink = document.createElement('a');
    elink.download = fileName;
    elink.style.display = 'none';
    elink.href = URL.createObjectURL(blob);
    document.body.appendChild(elink);
    elink.click();
    URL.revokeObjectURL(elink.href); // 释放URL 对象
    document.body.removeChild(elink);
} else {
    // IE10+下载
    navigator.msSaveBlob(blob, fileName);
}

需要设置request header

responseType: 'arraybuffer',
alien: true, 
接下来就可以愉快的导出文件了

关于fileName 可以从response header的 Content-Disposition: attachment;filename=一年级一班_2020-03-30_2020-03-30.xls 去取,具体方法自己操作了

原创文章,作者:itclubs,如若转载,请注明出处:https://www.itclubs.cn/?p=169

发表评论

登录后才能评论

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:843462167@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息