解决流文件下载中,接口报错无法提取错误信息
解决流文件无法提取后端定义的文件名
//下载流文件
export const downloadBlob = (response: any, downloadName: string) => {
if (!response || !response.data) {
return
}
//提取接口中的错误信息
if (response.data.type === 'application/json') {
const fileReader: any = new FileReader()
fileReader.readAsText(response.data, 'utf-8')
fileReader.onload = function () {
console.log(fileReader)
const result = JSON.parse(fileReader.result)
ElMessage.error(result.message);
}
return
}
let url = window.URL.createObjectURL(new Blob([response.data]));
const encodeFileName = response.headers['content-disposition'].split(';')[1].split('=')[1];
//获取后端接口返回的文件名
const fileName = decodeURIComponent(encodeFileName);
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', downloadName || fileName) // downloadName自定义下载文件名(如exemple.txt)
document.body.appendChild(link)
link.click()
};