axios下载文件代码详情

文件的下载在网站中非常常见,本文就在vue中如何使用axios实现下载操作代码详解。

代码如下:

1、引入axios插件,关于该插件的下载请自行百度。

import axios from 'axios'

2、页面中使用axios实现下载

axios({
// 用axios发送post请求
method: 'post',
url: '', // 请求地址
responseType: 'blob', // 表明返回服务器返回的数据类型
headers: {
'token': ''
},
data:{}//请求携带的参数
}).then(res => {
// 处理返回的文件流
const content = res.data
const blob = new Blob([content])
const fileName = '导出的文件名称.xls'
if ('download' in document.createElement('a')) {
// 非IE下载
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
} else {
// IE10+下载
navigator.msSaveBlob(blob, fileName)
}
})

3、根据自己需求进行参数的携带及header的设置。

说明:通过该方法进行文件的下载,效果和常规的a标签点击下载一致。

4、该方式和常规a标签下载的优势如下:

    4.1、实现了header的配置,如设置token

    4.2、不再局限于只能用get方法

    4.3、参数的携带更加方便


六月初字帖坊小程序 你想要的字帖模板及工具,这里都有!