本文已参与「新人创作礼」活动,一起开启掘金创作之路
基于a标签的下载
用fetch发送请求 对请求回来的二进制文件流进行处理
fetch('/upload/user.png').then((res) => {
res.blob().then((blob) => {
const blobUrl = window.URL.createObjectURL(blob);
// 这里的文件名根据实际情况从响应头或者url里获取
const filename = 'user.txt';
const a = document.createElement('a');
a.style.display = 'none'
//这里需要插入body的话,后面需要再移除
a.href = blobUrl;
a.download = filename;
a.click();
window.URL.revokeObjectURL(blobUrl);
});
});
如果是arraybuffer文件
先把arraybuffer转化为
生成Blob对象,设置type等信息
const blobres = res.arrayBuffer();
const fileBlob = new Blob([blobres],{ type: 'application/zip' })
因为上面直接是blob对象,所以这里就接着,上面就ok了