后端返回文件流,前端如何处理文件流
目录
后端返回文件流,前端如何处理文件流
<script>
const downloadTemplateClick = async () => {
try {
const response = await Api().DownloadExcelTemplate();//!!!注意 axios的返回类型必须是responseType:'blob'
// 使用 Blob 对象创建 URL
const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet' });
const url = window.URL.createObjectURL(blob);
// 创建一个隐藏的 <a> 元素来触发下载
const link = document.createElement('a');
link.href = url;
link.download = '文件名.xlsx';
link.style.display = 'none';
document.body.appendChild(link);
// 模拟点击 <a> 元素来触发下载
link.click();
// 释放 Blob 对象的 URL
window.URL.revokeObjectURL(url);
// 删除创建的 <a> 元素
document.body.removeChild(link);
} catch (error) {
// 处理错误
console.error(error);
}
}
</script>