Google Chrome Base64 方法是否能够处理来自文件 API 的二进制数据?

2024-01-10

我正在使用 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(使用前将#替换为@)

Google Chrome Base64 方法是否能够处理来自文件 API 的二进制数据? 的相关文章

随机推荐