当前位置: 首页 > news >正文

js/axios/umi-request 根据后端返回的二进制流下载文件

type ResponseType = {data: Blob;headers: {'content-disposition'?: string;};
};
// 下载 (创建a标签)
export const downloadBlob = (response: ResponseType) => {const blob = response.data; // 获取响应中的 Blob 数据const contentDisposition = response.headers['content-disposition'];let fileName = ''; // 默认文件名if (contentDisposition) {// 提取文件名并解码成中文const fileNameRegex = /filename=([^;]+)/;const fileNameMatch = contentDisposition.match(fileNameRegex);fileName = fileNameMatch ? fileNameMatch[1] : '';if (fileName) {fileName = decodeURIComponent(fileName);}}// 创建 Blob 对象后,你可以根据需要执行文件下载逻辑const url = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = url;link.download = fileName; // 设置下载文件的名称link.style.display = 'none';document.body.appendChild(link);link.click();// 清除创建的链接window.URL.revokeObjectURL(url);document.body.removeChild(link);
};

用法很简单。

  const downLoad= async () => {const response = await axios(...);//将完整的响应头丢进去即可aDownload(response);};
http://www.lryc.cn/news/172403.html

相关文章:

  • 软件评测师之流水线
  • Linux系统编程——网络编程的学习
  • Vue中的ref 和$refs的使用
  • Hive【非交互式使用、三种参数配置方式】
  • 基于Yolov8的工业小目标缺陷检测(1)
  • Python文件操作和管理指南:打开、读取、写入和管理文件
  • WebGL 用鼠标控制物体旋转
  • Spring Boot魔法:简化Java应用的开发与部署
  • 参议院算法Java
  • 前端提交规范 ESLint + Prettier + husky + lint-staged
  • python实现命令tree的效果
  • Deformable DETR(2020 ICLR)
  • springboot01
  • 虚拟机中window/ubuntu系统如何联网?
  • 计算物理专题----随机游走实战
  • 《思维与智慧》简介及投稿邮箱
  • flask+python快速搭建
  • 基于微信小程序的美术馆预约平台设计与实现(源码+lw+部署文档+讲解等)
  • ruoyi-vue-pro yudao 项目商城 mall 模块启用及相关SQL脚本
  • default 和 delete 与默认构造函数 的使用
  • 【开发篇】一、热部署
  • 点云从入门到精通技术详解100篇-定子装配过程中基于深度学习的易变形材料的点云分割(下)
  • 谷歌浏览器关闭自动更新功能
  • 电商业务--技术负责人 250K*15
  • MySQL只同步单个表或多个表,非全部同步!
  • 【论文基本功】【LaTeX】个人常用易忘LaTeX命令
  • JVM参数调优——G1收集器
  • Linux cp命令使用指南:详细教程及实际应用场景解析
  • 树结构数据在table中回显 treeselect disabled
  • BOA服务器移植