前端实现blob流地址下载文件

580 阅读1分钟

一般blob数据返回的是一个blob流url类似于(blob:chromeextension://mjhpihjgjjmpepfgpjenoppajogppmmb/562b44f1-4554-4ecf-b505-2f87d5a2f05)下载成excel文件

请求

const http3 = axios.create({
  withCredentials: true,
  timeout: 0,
  baseURL: baseUrl,
  responseType:"blob",
  headers: {
    "Client-Type": "chrome-extend",
    "X-Requested-With": "XMLHttpRequest",
  },
});
//创建请求
export const exportPurchaseOrders=() => {
  return http3({
    url: "ubook/api/exportPurchaseOrders",
    method:"post",
  });
}

处理

exportPurchaseOrders().then(res=>{
    const blob = new Blob([res.data]);//处理文档流
    const fileName = '进货单.xlsx';
    const elink = document.createElement('a');
    elink.download = fileName;
    elink.style.display = 'none';
    elink.href = URL.createObjectURL(blob);
    debugger
    document.body.appendChild(elink);
    elink.click();
    URL.revokeObjectURL(elink.href); // 释放URL 对象
    document.body.removeChild(elink);
});