我正在为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编码文件。
答案 0 :(得分:1)
如果你的数据已经是二进制的(TypedArray)附加在BlobBuilder上就可以了。
如果从Chrome中的XMLHttpRequest返回数据,则至少可以访问responseBlob属性,该属性可以直接在BlobBuilder.append()中使用