在一个项目中, 需要下载excel, pdf, word, zip等数据模板, 而后端返回的是一个文件流, 前端就需要使用blob来下载
1.首先要在接口中添加 responseType: ‘blob’,

// 模板下载
export function downLoadModule(url,params = {}) {return request({url: url,method: 'get',responseType: 'blob',params})
}
  1. 通过Blob对象,我们在前端代码中就可以动态生成文件,提供 给浏览器下载, 在每次调用createObjectURL()方法时,都会创建一个新的URL对象,即使你已经用相同的对象作为参数创建过。当不再需要这些URL对象时,每个对象必须通过调用URL.revokeObjectURL()方法来释放。浏览器会在文档退出时自动释放它们,但是为了获得最佳性能和内存使用状况,你应该在安全的时机主动释放掉它们。
    window.URL.revokeObjectURL(objectURL);

3.new Blob()中的type类型可以参考MDN:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types

// 下载模板let res = await downLoadModule(this.downLoadModuleUrl,{});console.log('模板地址',res)let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'});console.log("res", res);console.log("blob", blob);const $link = document.createElement("a");$link.href = URL.createObjectURL(blob);$link.download = `${this.title}数据模板.xlsx`$link.click();document.body.appendChild($link);document.body.removeChild($link); // 下载完成移除元素window.URL.revokeObjectURL($link.href); // 释放掉blob对象

前端blob下载文件相关推荐

  1. vue使用blob下载文件

    //封装好的api export function downFile(url, parameter) {return axios({url: url,params: parameter,method: ...

  2. react将前端Blob类型文件传到后台

    react将前端Blob类型文件传到后台 最近在做一个关于语音识别的功能,具体需求是用户在线录制音频提交给后台,后台转写成文字输出txt文本.我使用的是一个第三方类库recordmp3.js,可以录制 ...

  3. post方式返回文件流实现前端blob下载,responseType: ‘blob‘无效

    responseType: 'blob' 一般情况下,下载分为好几种,但是常用的是get下载文件流直接下载 post下载文件流是很少见的,但是鉴于参数太多,不能走get 只能走post下载,post下 ...

  4. 记录一下前端针对下载文件的两种请求方式

    之前做了很多下载文件的接口都没习惯进行记录,现在开始规范自己,让自己养成一个随手保存代码的好习惯.写的不足之处请指出,会改正. 说一下前端下载文件常用的两种方式,get请求和post请求 get请求相 ...

  5. 前端通用下载文件方法(兼容IE10及以上)

    之前在网上看到一个博主写的前端通用的下载文件的方法,个人觉得很实用,所以mark一下,方便以后查阅 源文地址(源文还有上传/下载excel文件方法) 因为项目要求要兼容IE浏览器,所以完善了一下之前博 ...

  6. web前端批量下载文件和图片探索

    1.图片,文件批量下载(不跨域的情况下) import JSZip from 'jszip'; import {saveAs} from 'file-saver'; import axios from ...

  7. 前端:下载文件(多种方法)

    一.简介 前端经常会有下载文件的需求,这里总结了几种常用的方法,方便日后查看. 二.a标签下载 <a href="https://abc.png" download=&quo ...

  8. 前端实现下载文件(包含压缩包下载)方式汇总

    默认最简单的下载方式是:window.open(后台接口API路径),但该方法弊端:因是新开窗口方式,前端展示上,每次会闪下. 此外,如果使用window.open(文件URL)方式: pdf.off ...

  9. 前端js下载文件压缩包

    工作当中时常会遇到对文件的一些处理,比如下载表格.下载图片.下载文件等,这里说一种下载压缩包的方法. 其实也很简单,需要用到一款插件jszip,官方用法都是有的:https://www.npmjs.c ...

最新文章

  1. C/C++利用三元组实现稀疏矩阵运算
  2. 基于 SpringBoot 的仿豆瓣平台【源码分享】
  3. 聊聊IO多路复用之select、poll、epoll详解
  4. Silverlight 动态调用 WebService
  5. JS核心基础数组的操作概述
  6. 敏捷估算:故事点与直接估算天数的差异
  7. [转]Http请求中Content-Type讲解以及在Spring MVC中的应用
  8. jupyter 服务器 显示不完全,Jupyter中显示DataFrame的行显示不完全
  9. 给ecshop后台增加管理功能页面
  10. Java计算机毕业设计电脑小白网站源码+系统+数据库+lw文档
  11. 字符集本地化(locale)与输入法系列讲座-----(1) UTF-8 and Unicode FAQ
  12. 客房管理系统前台代码html,中顶酒店客房前台管理系统
  13. C++模板的概念 定义和使用
  14. linux 云锁 端口,问一下,云锁安装后还可以修改端口吗?
  15. Kotlin中三元运算符
  16. 深度学习视频压缩3——M-LVC: Multiple Frames Prediction for Learned Video Compression
  17. python flask上传文件_Python之利用Flask上传文件、Flask_RESTful
  18. C++单个类的所有对象是否共享虚函数表的验证
  19. python数据结构——无序,有序列表抽象数据类型,链表
  20. ECCV2022 | 基于整合IMU运动动力学的无监督单目深度估计

热门文章

  1. 我的Electron个人学习笔记
  2. 2022_Aug_11
  3. 专访阿里云王伟民:一站式全链路,阿里云向云原生数据库2.0跃迁
  4. 盛大网络资产管理系统
  5. 幽灵的威胁:针对石油运输船的黑客攻击活动
  6. 百度上传插件(webupload)单文件(单图片)上传设置
  7. 5个小众且实用性超高的国产APP,每一个都是良心分享!
  8. 关于C语言中的a++,++a,a--,--a;
  9. 《人件集》笔记(一)
  10. SQL Server AlwaysON从入门到进阶(2)——存储