后端返回的文件流,前端下载
1.首先指定返回数据格式为blob:responseType: 'blob'
2.将文件流解析为路劲,并下载
例如:
// 通过id查询文件流,将文件流转为url
API.common.downloadFile(fileId).then((res) => {
if (!res.headers['content-disposition']) return this.$message.error('文件不存在')
let fileType = res.headers['content-type'].split(';')[0]
let fileName = (res.headers['content-disposition']).split('=')[1]
let blob = new Blob([res.data], { type: fileType }) //生成blob对象
link.href = URL.createObjectURL(blob)
link.setAttribute('download', fileName) //下载的文件名以及文件格式
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
})