vue 接收后端传输流文件处理为图片或压缩包
处理后台返回流文件,多张图片处理,返回成一个压缩包处理方法:就可以下载成一个压缩包了哦单张图片下载(相当于浏览器下载)
·
- 处理后台返回流文件,多张图片处理,返回成一个压缩包
处理方法:
let blob = new Blob([res.data], { type: 'application/octet-stream;charset=UTF-8' })
let fileName = decodeURI(res.headers['content-disposition'].split('filename*=utf-8')[1])
if (window.navigator.msSaveBlob) {
// ie
window.navigator.msSaveOrOpenBlob(blob, fileName)
return
}
let elink = document.createElement('a')
elink.style.display = 'none'
elink.href = window.URL.createObjectURL(blob)
elink.download = fileName
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
就可以下载成一个压缩包了哦
- 单张图片下载(相当于浏览器下载)
this.$http.post( --接口名---, data, { responseType: 'arraybuffer' })
.then(response => {
return 'data:image/png;base64,' + btoa(new Uint8Array(response.data).reduce((data, byte) => data + String.fromCharCode(byte), ''))
})
.then(data => {
var link = document.createElement('a')
link.href = data
if (imgsrc.indexOf('.jpg') != -1) { // 判断图片格式,非jpg格式,都已png格式显示
link.download = name + '.jpg'
} else {
link.download = name
}
link.click()
})
更多推荐
已为社区贡献1条内容
所有评论(0)