欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 获取后端返回的文件流 前端进行文件下载

获取后端返回的文件流 前端进行文件下载

2024/11/30 6:48:22 来源:https://blog.csdn.net/CWK13400405244/article/details/140868560  浏览:    关键词:获取后端返回的文件流 前端进行文件下载

获取后端返回的文件流 前端进行文件下载

1. 在 utils 文件夹下创建 downloadFile.ts

import axios from "axios";interface Params {url: string;method: string;data: any;
}export const downLoadFileBlob = (params: Params) => {return axios({url: params.url, //下载地址method: params.method, //请求方式responseType: "blob", //返回类型data: params.data, //请求参数});
};

2. 使用

// 导入请求方法
import { downLoadFileBlob } from "@/utils/downloadFile";//文件流请求方法
const downLoadFileFun = () => {const data = {dateType: 2,startTime: "2024-07-01 00:00:00",endTime: "2024-07-31 10:15:21",};downLoadFileBlob({url: "/api/v1/report/export/excel",method: "post",data: data,}).then((res)=>{if(res.status === 200){const debug = res.data;if(debug){const elink = document.createElement("a");//获取后端返回的文件名 一般在 Content-Disposition 上const contentDisposition: string = res.headers.get("Content-Disposition");//获取文件名 应该是中午乱码的,需要解码一下const filename: string = contentDisposition.split("filename=")[1];// 解码一下文件名const tempName = decodeURIComponent(filename) elink.download = tempName;elink.style.display = "none";const blob = new Blob([debug], { type: "application/x-msdownload" });elink.href = URL.createObjectURL(blob);document.body.appendChild(elink);elink.click();document.body.removeChild(elink);}else{console.log("下载失败");}}})
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com