Encode Blob to Base64 in JavaScript

Encode Blob to Base64 in JavaScript

要在JavaScript中將Blob對象編碼爲Base64,您能夠使用 FileReader.readAsDataURL()方法。下面我提供了一個簡單的例子,大多數流行的瀏覽器(Chrome 6 +,Edge 12 +,Firefox 3.6 +,Internet Explorer 10 +,Safari 6+)都支持這些瀏覽器。
// 建立的Blob對象
var blob = new Blob(['Welcome to <b>base64.guru</b>!'], {type: 'text/html'});

// 定義可以讀取Blob內容的FileReader
var reader = new FileReader();

reader.onload = function () {
  // 因爲它包含數據URI,咱們應該刪除前綴並僅保留Base64字符串
  var b64 = reader.result.replace(/^data:.+;base64,/, '');
  console.log(b64); //-> "V2VsY29tZSB0byA8Yj5iYXNlNjQuZ3VydTwvYj4h"

  // 解碼Base64編碼字符串並顯示結果
  var html = atob(b64);
  console.log(html); //-> "Welcome to <b>base64.guru</b>!"
};

// 因爲一切都已設置,讀取並將結果存儲爲數據URI
reader.readAsDataURL(blob);
將Blob轉換爲Base64的另外一種方法是調用 reader.readAsBinaryString(blob)並使用它 btoa(reader.result)來獲取Base64字符串。可是,此方法極可能工做較慢,而且根本不受Internet Explorer支持。

參考

Encode Blob to Base64 in JavaScriptjavascript

相關文章
相關標籤/搜索