解决后端文件流到前端乱码情况
/**
- baseUrl :你的基础地址,这里一般都会做跨域代理,如果做了跨域代理就是的代理后的地址,如果没有可以直接粘贴基础地址 + 后面为接口加参数
- new Blob(你请求返回来的文件流,你要下载的文件类型)
- el.setAttribute(‘download’, ‘文件名(你想要什么名字就写什么)’)
- 后面的就是移除元素和释放blob
*/
//下载模板
handleDownload() {
const listId = this.fileData.listId;
axios({
method: ‘get’,
url: baseUrl + this.urlMap.downloadUrl + ‘listId’ + ‘=’ + listId,
responseType: ‘blob’,
headers: { Authorization: window.sessionStorage.getItem(‘accessToken’) }
}).then(res => {
const blob = new Blob([res.data], { type: ‘application/vnd.ms-excel’ })
const el = document.createElement(‘a’)
el.style.display = ‘none’
el.href = URL.createObjectURL(blob)
el.download = ‘部门危险品清单列表.xlsx’
document.body.appendChild(el)
el.click()
URL.revokeObjectURL(blob)
document.body.removeChild(el)
})
},
!!!由于非常简单就没有封装axios,多多交流 欢迎大神多多指教留言