点击下载按钮根据需要的id调接口拿到返回需要下载的文件
再看返回的数据结构
数组中一个对象,就是一个文件,多个对象就是多个文件
下载函数
// 下载
tableDownload(row) {
getuploadInventoryDownload({ sysBatch: row.sysBatch, fileName: row.fileName }).then((res) => {
console.log(res)
res.forEach((file, index) => {
// elink.download = decodeURI(file.headers['Content-Disposition'][0].split(';')[1].split('=')[1])
const name = decodeURI(file.headers['Content-Disposition'][0].split(';')[1].split('=')[1])
const name2 = name.slice(8)
console.log(name.slice(8))
const blob = this.buildBlob(file.body)
this.downLoadFile(blob, name2)
})
})
},
downLoadFile(blob, filename) {
const link = document.createElement('a')
link.href = window.URL.createObjectURL(blob)
link.download = filename
document.body.appendChild(link)
link.click()
URL.revokeObjectURL(link.href) // 释放URL 对象
document.body.removeChild(link)
},
buildBlob(data) {
const raw = window.atob(data)
const rawLength = raw.length
const uInt8Array = new Uint8Array(rawLength)
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i)
}
return new Blob([uInt8Array])
},