后台返回原始base64数据,前端使用saveAs保存成各种格式

原始base64不包含前缀,比如:<img :src="'data:image/Jpeg;base64,'+imgBase64"> ,其中imgBase64就是指原始base64数据

// 要先使用一个库,
import { saveAs } from 'file-saver'
    const downloadBase64File = (base64Data, fileName) => {
      let byteCharacters = atob(base64Data)
      let byteNumbers = new Array(byteCharacters.length)
      for (let i = 0; i < byteCharacters.length; i++) {
        byteNumbers[i] = byteCharacters.charCodeAt(i)
      }
      let byteArray = new Uint8Array(byteNumbers)
      let blob = new Blob([byteArray], { type: 'application/octet-stream' })
      saveAs(blob, fileName)
    }

// 如果要使用其下载,fileName指的是文件的名全称,包括后缀,eg:`myimg.png`

saveAs是一个很强大的方法,如果后台返回的是二进制文件流(blob),则可以使用saveAs方法直接下载

//res是后台返回的二进制文件流
// 请求类型是responseType: 'blob'
saveAs(res, `${myname}.zip`)

以上。