export function downloadFile (obj, name, suffix, flag) {
const url = window.URL.createObjectURL(new Blob([obj]))
const dateMonth = new Date().getMonth() + 1
if (flag === 'dataFlag') {
var fileName = name + '.' + suffix
} else {
var fileName = name + new Date().getFullYear() + '-' + dateMonth + '-' + new Date().getDate() + '.' + suffix
}
if (window.navigator.msSaveBolb) {
try {
window.navigator.msSaveBolb(new Blob([obj]), fileName)
} catch (e) {
console.log(e)
}
} else {
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
}
在request中拿Excel文件名
方法一:
axios({
url:"",
method:'post',
responseType:'bolb',
data:{}
}).then(res=>{
downloadFile(res.data,res.headers['content-disposition'].split('filename=')[1].split('.zip')[0],'zip','dataFlag')
})
方法二:
响应拦截器中添加
if(response.headers['content-disposition']){
window.sessionStorage.setItem('documentName',response.headers['content-disposition'])
}
拿取数据
window.sessionStorage.getItem('documentName')