vue二进制图片/文件流下载
问题:后台返回二进制文件,直接控制台打印时乱码的。
解决方式:
download(params) {
this.$request({
url: baseUrl + '/file/download',
method: 'post',
data:params ,
responseType: 'arraybuffer'
}).then(res => {
var blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8' })//这里type指定下载文件的类型,这里用的时.docx类型
let downloadElement = document.createElement('a')//创建<a>标签
let href = window.URL.createObjectURL(blob) // 创建下载的链接
downloadElement.href = href
downloadElement.download = '下载文件' // 下载后文件名
document.body.appendChild(downloadElement)
downloadElement.click() // 点击下载
document.body.removeChild(downloadElement) // 下载完成移除元素
window.URL.revokeObjectURL(href) // 释放掉blob对象
}).catch(err => {
console.log(err)
})
},