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 JavaScript


郭俊宗
6 声望0 粉丝

我很懒