- axios调用后台API接口获取数据
this.$({
method:'post',
url:'/api//files/filesearch/download',
data:{
ids:[
"53ba3fefeb4086a05b805ac9a745a011",
"c8ca2aea8ff822f928903522fe7457c3",
"fd7baec6fff7e73c1817dcf4743ac2ba",
"327dd01cb5351f1fa0537d909b5e9000"
]
},
responseType:'arraybuffer'// 下载文件可以打开
}).then((response)=>{
();// 请求成功回调 ,将获取的下载文件数据返回
})
}
- 创建临时blob的url
let url = (new Blob([data]))
- 创建隐藏下载元素,指定href为blob的url
let link = ('a') // 创建一个超链接
= 'none' // 隐藏元素显示
= url // 设置元素路径
= 'download_' + new Date().valueOf() + '.zip' // 下载后文件名
() // 下载文件
(link)// 下载完成移除元素
(url)// 释放掉blob对象
- 完整代码
getDownloadData () {
this.$({
method: 'post',
url: '/api//files/filesearch/download',
data: {
ids: [
'53ba3fefeb4086a05b805ac9a745a011',
'c8ca2aea8ff822f928903522fe7457c3',
'fd7baec6fff7e73c1817dcf4743ac2ba',
'327dd01cb5351f1fa0537d909b5e9000'
]
},
responseType: 'arraybuffer'// 下载文件可以打开
}).then((response) => {
()// 请求成功回调 ,将获取的下载文件数据返回
})
},
download(data){
if (!data) {
return
}
let url = (new Blob([data]))
let link = ('a')
= 'none'
= url
= 'download_' + new Date().valueOf() + '.zip'
()
(link)
(url)
}