首頁 > web前端 > js教程 > 如何在 JavaScript 中將 Blob 轉換為 Base64 字串?

如何在 JavaScript 中將 Blob 轉換為 Base64 字串?

Patricia Arquette
發布: 2024-11-25 19:18:12
原創
802 人瀏覽過

How to Convert a Blob to a Base64 String in JavaScript?

使用FileReader 將Blob 轉換為Base64

在JavaScript 中,您可能會遇到需要轉換Blob 物件的情況,該物件通常表示映像或文件,為Base64 字串。當您需要以文字格式儲存或傳輸二進位資料時,例如透過 HTTP 發送或將其儲存在資料庫中,此轉換是必要的。

您提供的程式碼片段,使用 Blob 和 FileReader API ,旨在執行此轉換。但是,您提到了來源變數傳回 null 的問題。

使用 FileReader for Blob to Base64

此問題的解決方案是修改程式碼以正確使用 FileReader。以下是更新後的程式碼:

var reader = new FileReader();
reader.readAsDataURL(blob); 
reader.onloadend = function() {
  var base64data = reader.result;                
  console.log(base64data);
}
登入後複製

在此程式碼中,readAsDataURL() 方法用於將 Blob 資料編碼為 Base64 字串。然後使用 onloadend 事件處理程序從 reader.result 屬性檢索 base64 編碼的資料。

使用jQuery 的更簡單方法

或者,您可以考慮使用jQuery 進行更簡潔的實作:

$.ajax({
  url: "upload.php", // URL to submit the form
  type: "POST",
  data: {
    image: blob
  },
  beforeSend: function(xhr) {
    // Encode the blob as a base64 string
    var reader = new FileReader();
    reader.readAsDataURL(blob);
    reader.onloadend = function() {
      // Append the encoded data to the form data
      var data = reader.result;
      xhr.setRequestHeader("Image-Data", data);
    }
  }
});
登入後複製

請注意,jQuery Ajax 方法將處理程式傳送編碼的Base64 字串以及表單

刪除Data-URL聲明

需要注意的是,Blob 的結果將在 Base64 編碼資料之前包含 Data-URL 聲明,這一點很重要。若要只擷取 Base64 編碼的字串,可以使用以下程式碼:

var base64String = base64data.substring(base64data.indexOf(',') + 1);
登入後複製

以上是如何在 JavaScript 中將 Blob 轉換為 Base64 字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板