美文网首页
Base64转Blob或者File,arrbuffer和Blob

Base64转Blob或者File,arrbuffer和Blob

作者: 男人宫 | 来源:发表于2023-04-10 17:18 被阅读0次

    Base64转Blob或者File

    changeBase64ToFileOrBlob(base64String, type = "file") {
          let arr = base64String.split(",");
          let mime = arr[0].match(/:(.*?);/)[1]; // 此处得到的为文件类型
          let bstr = atob(arr[1]); // 此处将base64解码
          let n = bstr.length;
          let u8arr = new Uint8Array(n);
          while (n--) {
            u8arr[n] = bstr.charCodeAt(n);
          }
          if (type === "blob") {
            let blob = new Blob([u8arr], { type: mime });
            return blob;
          } else {
            // 通过以下方式将以上变量生成文件对象,三个参数分别为文件内容、文件名、文件类型
            let file = new File([u8arr], "filename", { type: mime });
            return file;
          }
        },
    
    
    

    ArrayBuffer转base64

     function arrayBufferToBase64(buffer) {
         var binary = '';
         var bytes = new Uint8Array(buffer);
         var len = bytes.byteLength;
         for (var i = 0; i < len; i++) {
             binary += String.fromCharCode(bytes[i]);
         }
         return window.btoa(binary);
     }
    
    

    Blob转Base64

    export function blobToBase64 (blob) {
        return new Promise((resolve, reject) => {
            const fileReader = new FileReader()
            fileReader.onload = (e) => {
                resolve(e.target.result)
            }
            // readAsDataURL
            fileReader.readAsDataURL(blob)
            fileReader.onerror = () => {
                reject(new Error('blobToBase64 error'))
            }
        })
    }
    
    

    相关文章

      网友评论

          本文标题:Base64转Blob或者File,arrbuffer和Blob

          本文链接:https://www.haomeiwen.com/subject/hglwddtx.html