乐趣区

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 JavaScript

退出移动版