前端下载文件

一般分为两种情况:1、后端返回blob数据流。2、后端返回base64字节

1、blob数据流

可以直接用a标签模拟点击事件直接下载

const fileName = 'test.jpg';
const blob = new Blob([xxx]);
const blobUrl = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = blobUrl;
a.download = fileName;
a.click();
//释放之前通过调用URL.createObjectURL()创建的对象
window.URL.revokeObjectURL(blobUrl);

备注:由于 Blob 接口的生命周期问题及潜在的内存泄漏风险,此方法在 Service Worker不*可用。


2、base64字节

//1、采用atob的方法函数会对经过 Base64编码的字符串进行解码
atob(encodedData)
//1、先base64转成blob流
new Blob([res],{
type: "application/json",
})
//2、模拟a标签点击事件下载

常见 MIME 类型列表

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容