2010-12-04 3 views
2

Base64にbtoaとatobを使用していますが、atobメソッドはバイナリデータでは機能しません!テキストだけ。これをどうすれば解決できますか?Google Chrome Base64のメソッドはFile APIのバイナリデータを処理できますか?

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

+0

あなたがバイナリデータをロードする方法を示しすることはできますか?バイナリデータはもともとbase64にありますか?たとえそれをデコードすることができたとしても、それをどのように表示するのですか? – syockit

+3

はい、何をしようとしているかを正確に示すコードを投稿してください。それがなければ、これは答えるのがかなり難しいです。 – jorlow

答えて

1

データが既にバイナリ(TypedArray)であれば、BlobBuilderで追加するだけで動作するはずです。

データは、ChromeでのXMLHttpRequestから返された場合は、少なくともあなたがBlobBuilder.append(で直接使用することができresponseBlobプロパティへのアクセスを、持っている)

+0

'xhr.responseType = 'blob''を設定することはまだChromeでは実装されていません。星[crbug.com/52486](http://crbug.com/52486)。 – ebidel

関連する問題