2012-01-09 24 views
7

この文字列からDataURLを取得します。これをファイルとしてダウンロードするにはどうすればよいですか?JavaScriptのDataURLからファイルをダウンロードする

これまでのところ、基本的なファイルはwindow.open("myDataURL");でしたが、このようにファイル名を変更することはできません。

window.open('data:application/msword;base64,0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAA 
      PgADAP7/CQAGAAAAAAAAAAAAAAACAAAANQAAAAAAA 
      AAAEAAANwAAAAIAAAD+////AAAAADQAAABsAA/', 
      '_blank','height=300,width=400'); 

このデータを適切に処理する方法があるかどうかは疑問でした。

+0

は私が例を使用しているかのように、ファイル名が「rVPjLUq1.part」となり、前にこの質問を見てきましたhttp://stackoverflow.com/a/6465780/27862 – user123444555621

+0

を参照してください。私は上記に投稿しました。 – eBergamo

+0

Wladimir Palantが書いているように、この問題は[W3Cのメーリングリストで議論されている](http://lists.w3.org/Archives/Public/uri/2010Feb/thread.html#msg58)、「これはブラウザの実装はもちろんのこと、これまでの仕様にしたようです」私はそのことについて何も進展していないのではないかと心配しています。 – user123444555621

答えて

0

はこのお試しください:

data:application/msword;fileName=test.doc;base64,0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAANQAAAAAAAAAAEAAANwAAAAIAAAD+////AAAAADQAAABsAA/ 

をしかし、これはただの周りグーグルから推測され、ブラウザに依存している可能性があります。実際の答えはです。は参照できません - 参照のためにhttp://www.ietf.org/rfc/rfc2397を参照してください。ファイル名をサポートする仕様はありません。

+0

さて、それは動作しませんでした。それは単にイメージの使用のために意味ですか?この "値"を再利用してファイルを再作成することができない場合、大きな利点ではないからです。私はまだこの問題を解決するための答えを探しています... JSPまたはJavaも使用しています。しかし、私はこのようにdataURLをどのように扱うかについてのリンクを見ることができません。 – eBergamo

+0

データURIは、未加工データをURI互換の方法で処理するためのものです。例えば、外部のリンクされた要素を期待する別の文書へのイメージやテキストの埋め込みなど。 – bardiir

+0

私は参照してください。ファイルの内容を取得する方法では、reader.readAsDataURL(file);を使用します。代わりにreadAsBinaryStringを使用すると、後でファイル(pdf、xls、docs)を正しく再作成できますか? – eBergamo

3

属性をアンカー要素に追加できます。 サンプル:

<a download="abcd.zip" href="data:application/stream;base64,MIIDhTCCAvKg........">download</a> 
+1

これはIEでサポートしていません – Nipuna

+0

これで今はクロムのみが動作します。 – cuixiping

+0

また、window.open属性にファイル名を指定するというOPの質問にも対処していません(HTMLではなくJavascriptから)。 – srlm

関連する問題