JS中的文件流
创建Blob
new Blob(array);
Blob转化为URL
//DomString,<a href='下载文件URL' /> 同步
window.URL.createObjectURL(blob);
window.URL.revokeObjectURL(objectURL);//释放
怎么读取Blob文件
new FileReader(blob)
//Base64格式,img src可以直接展示<a href='下载文件URL' /> 异步
.readAsDataURL();
.readAsText();//字符串格式
.readAsArrayBuffer();//生成ArrayBuffer格式
.onLoad(e => {}); //文件成功读取
怎么创建ArrayBuffer
blob.arrayBuffer();//二进制缓冲区
切片多个Blob
blog.slice();
File继承Blob
eg:
下载excel, 读取后台返回的文件流
- 请求参数:config中添加
{responseType: 'blob'}
- 响应:
![image]()
const fileName = headers['content-disposition'].split(';')[1].split('=')[1];
//const url = URL.createObjectURL(res.data);//同步,释放
const reader = new FileReader()
reader.readAsDataURL(res.data)
reader.onload = (e) => {
const aEl = document.createElement('a')
aEl.download = window.decodeURIComponent(fileName)
aEl.href = e.target.result
document.body.appendChild(aEl)
aEl.click()
document.body.removeChild(aEl)
}

浙公网安备 33010602011771号