vue 前台获取后台传回的文件名字
// decodeURIComponent 处理中文乱码问题
let dis = decodeURIComponent(response.headers['content-disposition']);
// 获取后台返回的文件名称
fileName = dis.split('attachment;filename=')[1];
// 将返回的对象转换成blob对象
let blob = new Blob([response.data])
// 创建一个a标签
const elink = document.createElement('a')
// 设置下载名称
elink.download = fileName
// 将a标签隐藏
elink.style.display = 'none'
// 设置a标签的href属性为blob对象转化的URL
elink.href = URL.createObjectURL(blob)
// 将a标签放到body中
document.body.appendChild(elink)
// 点击下载
elink.click()
// 释放URL对象
URL.revokeObjectURL(elink.href)
// 将创建的a标签删除
document.body.removeChild(elink)
Java后台代码
response.setHeader("Content-disposition", URLEncoder.encode("attachment;filename=导出文件名字.xlsx","utf-8"));
response.setContentType("application/msexcel");
这样文件名字是中文就不会出现乱码了。