文件流导出文件

javascript 复制代码
// 下载excel
export const downloadFile = (fileStream, fileName) => {
  if (window.navigator.msSaveBlob) {
    try {
      window.navigator.msSaveBlob(fileStream, fileName);
    } catch (e) {
      console.log(e);
    }
  } else {
    const url = window.URL || window.webkitURL;
    const bUrl = url.createObjectURL(fileStream);
    let a = document.createElement("a");
    a.style.display = "none";
    a.href = bUrl;
    a.download = decodeURIComponent(fileName);
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    url.revokeObjectURL(bUrl);
  }
};

使用downloadFile(res, `默认文件.xlsx`);

res是后端返回文件流,默认文件.xlsx是文件名 .xlsx是后缀名

javascript 复制代码
// 获取文件类型
export function getFileType(file) {
  const type = file.type || "";
  const name = file.name || "";
  if (type.includes("word")) {
    return "doc";
  } else if (type.includes("excel") || type.includes("spreadsheetml.sheet")) {
    return "excel";
  } else if (type === "text/plain") {
    return "txt";
  } else if (type === "application/pdf") {
    return "pdf";
  } else if (type === "text/html") {
    return "html";
  } else if (type === "text/markdown" || name.includes(".md")) {
    return "md";
  } else {
    return "other";
  }
}
相关推荐
麦麦大数据3 分钟前
F037 vue+neo4j 编程语言知识图谱可视化分析系统vue+flask+neo4j
vue.js·flask·知识图谱·neo4j·可视化·编程语言知识图谱
非凡ghost15 分钟前
ToDoList(开源待办事项列表) 中文绿色版
前端·javascript·后端
用户61204149221319 分钟前
html+layui+node+js做的个人财务管理系统
javascript·后端
j七七21 分钟前
5分钟搭微信自动回复机器人5分钟搭微信自动回复机器人
运维·服务器·开发语言·前端·python·微信
快起来别睡了22 分钟前
TypeScript装饰器详解:像搭积木一样给代码加功能
前端·typescript
Sheldon一蓑烟雨任平生24 分钟前
Vue3 组件 v-model
vue.js·vue3·v-model·definemodel·v-model修饰符·自定义双向绑定组件·多个v-model绑定
OpenTiny社区41 分钟前
如何使用 TinyEditor 快速部署一个协同编辑器?
前端·vue.js
ttyyttemo41 分钟前
加载图片,不同数据源,Compose实现
前端
胖虎26542 分钟前
打造梦幻粒子动画效果:基于 Vue 的 Canvas 实现方案
vue.js
Mike_jia1 小时前
Dumbterm:基于网页的终端革命!随时随地安全访问服务器的终极方案
前端