vue 接收后端传输流文件处理为图片或压缩包

  1. 处理后台返回流文件,多张图片处理,返回成一个压缩包
    vue 接收后端传输流文件处理为图片或压缩包_第1张图片
    处理方法:
    vue 接收后端传输流文件处理为图片或压缩包_第2张图片
    vue 接收后端传输流文件处理为图片或压缩包_第3张图片
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)

就可以下载成一个压缩包了哦

  1. 单张图片下载(相当于浏览器下载)
    vue 接收后端传输流文件处理为图片或压缩包_第4张图片
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()
    })

你可能感兴趣的:(vue,vue,流文件处理为图片,流文件处理为压缩包)