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

时间:2010-12-04 02:04:40

标签: html5 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编码文件。

1 个答案:

答案 0 :(得分:1)

如果你的数据已经是二进制的(TypedArray)附加在BlobBuilder上就可以了。

如果从Chrome中的XMLHttpRequest返回数据,则至少可以访问responseBlob属性,该属性可以直接在BlobBuilder.append()中使用