2

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 でエンコードされたファイルです。

4

1 に答える 1

1

データが既にバイナリ (TypedArray) である場合、BlobBuilder に追加するだけで機能します。

データが Chrome の XMLHttpRequest から返される場合、少なくとも、BlobBuilder.append() で直接使用できる responseBlob プロパティにアクセスできます。

于 2011-05-01T15:19:34.883 に答える