將base64的圖片轉換成file對像上傳


我們一般上傳圖片是二進制,但是有時候我們拿到的圖片是base64的,這個時候原有的上傳接口就不支持啦

// 常用的
<input type='file' />

  

//  如果是base64 的啦 如何轉換成file對像 使用原有的接口上傳啦
base64ToFile(data) {
        
      // 將base64 的圖片轉換成file對象上傳 atob將ascii碼解析成binary數據
          let binary = atob(data.split(',')[1]);
          let mime = data.split(',')[0].match(/:(.*?);/)[1];
          let array = [];
          for (let i = 0; i < binary.length; i++) {
            array.push(binary.charCodeAt(i));
          }
          let fileData = new Blob([new Uint8Array(array)], {
                type: mime,
              });

          let file = new File([fileData], `${new Date().getTime()}.png`, { type: mime });

      return file;

}

// 一般來說這個時候拿到 base64ToFile 返回的file對象給到上傳接口就可以啦,
// 這里的表單需要你自己處理一下

 

  // 構造表單

  
// 構造表單 示例
let formData = new FormData();
formData.append('key', path); // path 路徑
formData.append('OSSAccessKeyId', OSSAccessKeyId); // OSSAccessKeyId
formData.append('Signature', Signature); // Signature
formData.append('expire', expire);  // expire
formData.append('policy', policy); // policy
formData.append('file', file, file.name);

axios.post(url, formData).then(res => {
    // res 里面應該有一個遠程的url地址,就是你上傳的圖片資源服務器后返回的地址
})

  


免責聲明!

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



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