第1步:调用接口
var _this=this
this.axios({
url:this.HOST + api,
method:'post',
params:{
fileId:fileId //后端所需参数
},
responseType:'arraybuffer' //此处注意请求头,json,buffer,blob
}).then(res=>{
var fileName = that.files.name //此处获取文件名称
that.download(res.data,fileName) //此处跳转到第三步
})
第2步:处理返回值,并下载
download (data,fileName) {
if (!data) {
return
}
let url = window.URL.createObjectURL(new Blob([data])) //创建下载链接
let link = document.createElement('a') //创建a标签
link.style.display = 'none' //将a标签隐藏
link.href = url //给a标签添加下载链接
link.setAttribute('download', fileName) // 此处注意,要给a标签添加一个download属性,属性值就是文件名称 否则下载出来的文件是没有属性的,为空
document.body.appendChild(link)
link.click() //执行a标签
}
网友评论