前端文件下载常用的方法是,后端返回一个流文件,前端使用blob转化文件流,在通过一个a标签实现下载,代码如下
const downLoadExcel = async () => {
const data = await api.downLoad()
// 里面的配置信息跟后端返回的响应头里配置一致,
const blob = new Blob([data], { type: 'application/force-download;charset=UTF-8' })
const url = URL.createObjectURL(blob)
const a = document.createElement('a')
a.style.display = 'none'
//文件名字,可以自定义,也可根根据后端返回来配置
a.download = 'template_sight.xlsx'
a.href = url
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
//释放一个通过 URL.createObjectURL() 方法创建的 URL,防止内存泄漏
URL.revokeObjectURL(url)
}