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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。