2

我将 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 编码文件。

4

1 回答 1

1

如果您的数据已经是二进制(TypedArray),则 BlobBuilder 上的附加应该可以正常工作。

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

于 2011-05-01T15:19:34.883 回答