我正在为 Base64 使用 btoa 和 atob,但 atob 方法不适用于二进制数据!只是文字。我该如何解决这个问题?
if(!!window.createBlobURL || !!window.createObjectURL) {
var bb = new BlobBuilder();
var reader = new FileReader();
var url_creator = window.createBlobURL || window.createObjectURL;
bb.append(atob(msg.bit.file.data));
reader.onloadend = function(e) {
bb = new BlobBuilder();
bb.append(e.target.result);
var url = url_creator(bb.getBlob(msg.bit.file.type));
window.open(url);
}
reader.readAsBinaryString(bb.getBlob(msg.bit.file.type));
}
其中msg.bit.file.data为base64编码后的文件。
最佳答案
如果您的数据已经是二进制的 (TypedArray),在 BlobBuilder 上附加应该就可以了。
如果数据是从 Chrome 中的 XMLHttpRequest 返回的,至少你可以访问 responseBlob 属性,它可以直接在 BlobBuilder.append() 中使用
关于html - Google Chrome Base64 方法是否能够处理来自文件 API 的二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4351543/