利用axios 的流文件下载
export function downloadFileRequest(params) {
let url = '/v1.0/api/resource';
return axios({
url: url,
method: 'get',
params: params,
processData: false,
responseType: 'blob',
headers: RequestHeader(),
},
)
.then(response => {
const { statusText, status } = response;
if (response.data && response.data instanceof Blob) {
//获取后台文件名
let realFileName = response.headers['content-disposition'].split('filename="')[1].split('.')[0];
let blob=response.data
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob,realFileName);
} else {
let link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = realFileName;
//兼容火狐浏览器
document.body.appendChild(link);
let evt = document.createEvent("MouseEvents");
evt.initEvent("click", false, false);
link.dispatchEvent(evt);
document.body.removeChild(link);
}
}
else {
throw response
}
})
.catch(error => {}