import axios from '@/utils/utils'
const request = axios()
const createAnchorLink = (href,filename = '') => {
const a = document.createElement('a');
a.download = filename
a.href = href
document.body.appendChild(a)
a.click()
a.remove()
}
const downloadAll = ({
url,
filename,
callback,
type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel",
method = "POST",
data
}) => {
request({
url,
method,
reponseType: "blob",
getResponse:true,
data
}).then(res => {
let blob = new Blob([res.data],{type})
const blobUrl = window.URL.createObjectURL(blob)
createAnchorLink(blobUrl,filename)
window.URL.revokeObjectURL(blobUrl)
callback & callback(true)
}).catch(err => {
callback & callback(false)
})
}
export {downloadAll}
封装文件下载
最新推荐文章于 2024-09-12 18:22:06 发布
本文介绍了一个使用axios库实现的文件下载功能,createAnchorLink函数创建临时链接并触发下载,downloadAll函数则封装了请求处理和文件下载过程。适合处理各种类型文件并通过回调通知下载结果。
摘要由CSDN通过智能技术生成