下载文件,自动获取后端返回文件名,并自动识别文件格式,如果是iso-8859-1编码转换utf-8

点击下载文件按钮,获取后端返回接口,根据请求头自动解析文件名称,自动识别文件类型后缀名,如果中文是iso-8859-1格式转换为utf-8,否则下载不了.

clike 复制代码
axios({
  method: 'get',
  url: 'http://your-backend-url/download',
  responseType: 'blob',
}).then(response => {
// 获取请求头内容
  const contentDisposition = response.headers['content-disposition'];
  // 文件名处理、格式处理
  const encodedFilename = contentDisposition.split('filename=')[1];

  // utf-8格式处理
  // const decodedFilename = decodeURIComponent(encodedFilename);
  
  // iso-8859-1格式处理
  const decodedFilename = decodeURIComponent(escape(encodedFilename));
  // 创建一个 Blob 对象
  const blob = new Blob([response.data], { type: response.headers['content-type'] });
  
  // 创建一个 URL 对象
  const url = window.URL.createObjectURL(blob);

  // 创建一个链接元素并模拟点击以下载文件
  const a = document.createElement('a');
  a.href = url;
  //文件名、后缀类型处理
  a.download = decodedFilename;
  document.body.appendChild(a);
  a.click();
  // 释放内存
  window.URL.revokeObjectURL(url);
});
相关推荐
方也_arkling8 分钟前
【Java-Day13】内部类
java·开发语言
INGNIGHT10 分钟前
984.不含 AAA 或 BBB 的字符串(贪心)
开发语言·算法·leetcode
Ws_13 分钟前
C# 桌面端开发工程师面试题 + 参考答案
开发语言·面试·c#
梦幻通灵14 分钟前
Java传递负数金额被默认转化为0处理方案
java·开发语言
七夜zippoe18 分钟前
OpenClaw Canvas 执行:JavaScript 注入实战
开发语言·javascript·udp·canvas·openclaw
chushiyunen20 分钟前
滑块验证(滑动验证)
vue
雨落在了我的手上23 分钟前
初识java(十五):字符串-String类
java·开发语言
zzx2006__23 分钟前
JavaScript最终考核
开发语言·前端·javascript
努力努力再努力wz24 分钟前
【Qt入门系列】:QLabel控件详解:从文本显示到图片展示,再到内容布局与伙伴机制
android·开发语言·数据结构·数据库·c++·qt·mysql
甄心爱学习39 分钟前
【项目实训(个人10)】
开发语言·前端·javascript