//发送请求
getData(){
let upUrl = '/down'
let methods='post'
let params = {id:1,name:'xxx'}
axios(upUrl,methods,params).then(res=>{
if(res.code==200){
Toast('操作成功')
//返回的data为文件流,需要通过blob转换
const data = res.data
const blob = new Blob([data],{type:"application/vnd.ms-excel"})
let url = window.URL.createObjectURL(blob)
let a = document.createElement('a')
if('download' in document.createElement('a')){//不是ie下载
document.body.appendChild(a)
// 从接口返回的header中截取
// let fileName = res.headers["content-disposition"].split(";")[1].split("=")[1]
let fileName = params.name
a.download = fileName
a.style.display = "none"
a.href = url
a.click()
window.URL.revokeObjectURL(url)//下载完成后释放
}else{
// IE10+下载
navigator.msSaveBlob(blob,params.name)
}
}
})
}
处理后端传过来的二进制流文件
最新推荐文章于 2024-07-09 16:46:46 发布