我正在使用 btoa 和 atob 进行 Base64,但 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 返回的,那么至少您可以访问响应 Blob 属性,该属性可以直接在 BlobBuilder.append() 中使用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)