文件导出请求
import request from '@/utils/request'
import axios from 'axios'
export function downloadFile(url, data) {
axios.post('https://域名/' + url, data, {
responseType: 'blob',
headers: {
'x-auth-token': getToken()
}
}).then(function(res) {
// 判断服务器导出是否报错
if (res.data.type === 'application/json') {
const reader = new FileReader()
reader.readAsText(res.data, 'utf-8')
reader.addEventListener('loadend', function() { //
const res = JSON.parse(reader.result)
Message({ type: 'error', message: res.msg })
})
return
}
var blob = res.data
var reader = new FileReader()
reader.readAsDataURL(blob)
reader.onload = function(e) {
var a = document.createElement('a')
var fileName = res.headers['content-disposition'].split('=')
fileName = fileName[fileName.length - 1]
fileName = fileName.replace(/"/g, '')
a.download = fileName
a.href = e.target.result
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
}
})
}
如果后端返回的是下载链接
downloadFilekz({ ids: ids }).then((res) => {
if (res.code == 1) {
var oA = document.createElement("a"); //创建a标签
oA.href = "https://**.****.com/" + res.data;//此时是拼接,完整链接可不拼接
oA.click();
} else {
this.$message({ type: "error", message: res.msg });
}
});