下载文件
- 同源下载
const link = document.createElement('a')
link.download = fileName
link.rel = 'noopener'
if (link.origin !== location.origin) {
} else {
// 设置链接属性
link.href= src
// 触发事件
link.dispatchEvent(new MouseEvent('click'))
}
- 接口下载
if (link.origin !== location.origin) {
//https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/responseType
axios.get(src, { responseType: 'blob'}).then(data => {
link.href = URL.createObjectURL(data.data)
setTimeout(() => { link.dispatchEvent(new MouseEvent('click')) })
// https://developer.mozilla.org/zh-CN/docs/Web/API/URL/revokeObjectURL
setTimeout(() => { URL.revokeObjectURL(link.href)}, 10000 )
}).catch((e) => {
console.error(e)
link.target='_blank'
link.href= src
link.dispatchEvent(new MouseEvent('click'))
})
}
- 跨域处理
console.error(e)
link.target='_blank'
link.href= src
link.dispatchEvent(new MouseEvent('click'))
export const downloadFile = (src: string, fileName = 'default.png') => {
// 创建链接
const link = document.createElement('a')
link.download = fileName
link.rel = 'noopener'
if (link.origin !== location.origin) {
//https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/responseType
axios.get(src, { responseType: 'blob'}).then(data => {
link.href = URL.createObjectURL(data.data)
setTimeout(() => { link.dispatchEvent(new MouseEvent('click')) })
// https://developer.mozilla.org/zh-CN/docs/Web/API/URL/revokeObjectURL
setTimeout(() => { URL.revokeObjectURL(link.href)}, 10000 )
}).catch((e) => {
console.error(e)
link.target='_blank'
link.href= src
link.dispatchEvent(new MouseEvent('click'))
})
} else {
// 设置链接属性
link.href= src
// 触发事件
link.dispatchEvent(new MouseEvent('click'))
}
}
`