要在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