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

标签 html google-chrome base64 fileapi

我正在为 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/

相关文章:

html - 影响 Mac Chrome 上其他元素的 CSS mix-blend-mode

css - Webkit 浏览器将蓝色文本显示为略带紫色

c - base64的解码表构造

mysql - 在没有 openssl 命令的情况下获取 SSL 证书过期

html - 文本没有采用我在 css 文件中指定的字体样式

html - 固定菜单左对齐

javascript - HTML 内联 PDF

javascript - Chrome 扩展程序 : Open tab, 转到 url,填写表格并提交表格

javascript - Chrome 中的数字输入不允许使用前导加号。解决方法?

amazon-web-services - aws ec2 运行实例 : base64 encoded user-data blob is ignored