axios post下载文件
时间: 2023-10-11 14:08:44 浏览: 81
要使用axios进行文件下载,需要进行以下步骤:
1. 发送一个POST请求,获取文件的二进制数据
```javascript
axios({
url: '/download',
method: 'POST',
responseType: 'blob', //设置响应类型为二进制流
data: {
//传递参数
}
}).then(res => {
//处理响应数据
})
```
2. 将获取的二进制数据转换成文件并下载
```javascript
axios({
url: '/download',
method: 'POST',
responseType: 'blob', //设置响应类型为二进制流
data: {
//传递参数
}
}).then(res => {
//将二进制流转换成文件
const blob = new Blob([res.data])
const fileName = 'example.pdf' //文件名
//将文件下载到本地
if (typeof window.navigator.msSaveBlob !== 'undefined') {
//兼容IE
window.navigator.msSaveBlob(blob, fileName)
} else {
//创建下载链接
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.setAttribute('download', fileName)
//将链接插入到页面中
document.body.appendChild(link)
//触发下载
link.click()
//清除链接
document.body.removeChild(link)
}
})
```
以上代码中,通过设置响应类型为blob,可以获取到二进制流数据。然后使用Blob对象将数据转换成文件,并创建下载链接,最后通过模拟点击链接的方式触发下载操作。
阅读全文