對於文件的blob、base64、File的轉化


64->File

   function toFile(ndata) {
      // ndata為base64格式地址
      let arr = ndata.split(','),
        mime = arr[0].match(/:(.*?);/)[1],

        bstr = atob(arr[1]),
        n = bstr.length,
        u8arr = new Uint8Array(n);
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
      }
      return new File([u8arr], this.fileName, {type:mime})
    }

blob->64

   //**blob to dataURL**
function blobToDataURL(blob, callback) {
    var a = new FileReader();
    a.onload = function (e) { 
        callback(e.target.result); 
    }
    a.readAsDataURL(blob);
}

原生請求blob

var ajax = new XMLHttpRequest();
    ajax.onreadystatechange = function(){
        if(ajax.readyState==4 && ajax.status==200){
            
            console.log(ajax.response)//blob; 
            blobToDataURL(ajax.response,(e)=>{
           console.log(e)//base64
          console.log(toFile(e))//Fille

            })
        }
    }
  
    ajax.open("GET",url,true);
    ajax.responseType = "blob"//設置返回值為blob類型
   
    ajax.send();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM