文件流下載到本地

後臺返回原始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`)

以上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章