1、前端代码:
dowloadTest(){
this.$axios.request({
method:'post',
url:'/file/download',
data:{
fileid:123
},
responseType:'arraybuffer'
})
.then((response)=>{
this.download(response.data);
})
},
download (data) {
if (!data) {
return
}
let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.download = 'ea7c0cf24153e0cd62bc8b64841fd84d.jpg'; //下载后文件名
link.setAttribute('download', 'ea7c0cf24153e0cd62bc8b64841fd84d.jpg')
document.body.appendChild(link)
link.click()
}
2、后端: 返回文件流即可 !!!
本文详细介绍了如何在前端使用axios发起post请求下载文件,并通过responseType设置为arraybuffer接收文件流。后端则负责返回文件流,实现文件的无缝下载。代码示例清晰,涵盖了前端请求及下载逻辑。
452

被折叠的 条评论
为什么被折叠?



