ArrayBuffer是一种存储二进制数据的类型,它可以被视为一段连续的内存区域,可以用来存储任何类型的二进制数据。Blob则是一种用于表示二进制数据的不可变对象,它一般用于处理文件数据等场景。因此,Blob对象通常是由一个或多个ArrayBuffer对象组成的数组,每个ArrayBuffer对象都包含文件数据的一部分。
------- 文件下载 路径下载 ---------
function download(row) {
let { url } = row
if(!url) {
proxy.$modal.msgError("下载地址不存在!");
return
}
let name = url.split('/').slice(-1)[0]
let a = document.createElement('a');
url = `/webapi${url}`
a.style = 'display: none'; // 创建一个隐藏的a标签
a.download = name;
a.href = url;
document.body.appendChild(a);
a.click(); // 触发a标签的click事件
document.body.removeChild(a);}
------- 批量-导出员工excel 二进制流 blob arraybuffer---------
export const exportEmployeeAPI = () => request({
url: '/sys/user/export',
responseType: 'blob' // 使用blob二进制文件流
})
const res = await exportEmployeeAPI()
// npm包
import FileSaver from 'file-saver'
FileSaver.saveAs(res, '员工信息表.xlsx')
// js原生
const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
const a = document.createElement('a')
a.href = URL.createObjectURL(blob)
a.download = '员工信息表'
a.click()
URL.revokeObjectURL(a.href)
a.remove()
white-spaces:pre 属性 识别文本换行, label = ' 完成时间 \n 完成时间) '