刚开始下载用的window.location.href 这个不会有错误提示,希望下载失败的话有错误提示
代码如下:
const downloadFile = async ({ url, filename }) => {
const res: any = await axios({
url,
responseType: 'blob'
})
if (res?.data?.type === 'application/json') {
const reader: any = new FileReader()
reader.addEventListener('loadend', () => {
try {
const result = JSON.parse(reader.result)
message.error(result?.msg || '下载失败')
} catch {
message.error('下载失败')
}
})
reader.readAsText(res.data, 'utf-8')
} else {
const elink = document.createElement('a')
const blob = new Blob([res.data])
const path = URL.createObjectURL(blob)
elink.href = path
elink.download = filename
elink.style.display = 'none'
elink.click()
window.URL.revokeObjectURL(path);
}
}