下载文件downFile
定义下载文件的方法downFile:
import axios from 'axios'
import qs from 'qs'
/**
* 下载文件
* @param url
* @param fileName
* @param params
*/
export function downFile (url, fileName, params, method) {
const downLink = document.createElement('a')
downLink.download = fileName
document.body.append(downLink)
if (!method) {
method = 'post'
}
return new Promise((resolve, reject) => {
axios({
method,
url,
responseType: 'arraybuffer',
data: qs.stringify(params)
}).then(res => {
console.log(res)
// workaround
if (res.data.byteLength < 100) {
reject('创建失败')
}
if (res.status === 200) {
const blob = new Blob([res.data])
downLink.href = URL.createObjectURL(blob)
downLink.click()
document.body.removeChild(downLink)
resolve()
} else {
reject(res.statusText)
}
}).catch(error => {
document.body.removeChild(downLink)
reject(error)
})
})
}
导入下载文件的方法downFile并使用:
import { downFile } form "./downFile.js"
downFile("下载地址url","下载文件名称"+".doc",params)
.then()
.catch(error=>{
console.log("downFile error: ",error);
});