axios下載文件


  1. 現在有一個導出文件的需求,后台需要post傳遞參數
  2. 普通的文件導出使用下面的方式
location.href = 'xxxxxx?' + params + token
  1. 現在需要使用axios的put方法
axios.put('url', data, {responseType: 'blob'}).then(res => {
    download(res, [callback])
})

const download = (res, callback) => {
    const disposition = res.headers['content-disposition'];
    // 拿到文件名
    let filename = disposition.split('filename=')[1];
    let blob = new Blob([res.data]);
    // 兼容ie
    if ('msSaveOrOpenBlob' in navigator) {
	window.navigator.msSaveOrOpenBlob(blob, filename);
    } else {
	const URL = window.URL || window.webkitURL;
	let objectUrl = URL.createObjectURL(blob);
	const a = document.createElement('a');
	a.href = objectUrl;
	a.download = filename;
	a.click();
	URL.revokeObjectURL(objectUrl);
    }
    callback && callback();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM