export async function downLoadBlobFile(url) {
const request = axios.create({
baseURL: import.meta.env.VITE_APP_BASE_API,
responseType: 'blob',
headers: {
'token': getToken()
}
});
try {
const response = await request.post(url);
const url_4 = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url_4;
// 提取文件名
const contentDispositionHeader = response.headers['download-filename'];
let fileName = 'file';
if (contentDispositionHeader) {
fileName = decodeURIComponent(contentDispositionHeader);
}
// 设置下载文件的属性(名称和类型)
link.setAttribute('download', fileName);
document.body.appendChild(link);
link.click();
// 清理创建的临时链接
URL.revokeObjectURL(url_4);
} catch (error) {
console.error(error);
}
}
在vue3中封装的下载文件方法
于 2023-11-07 09:33:02 首次发布