私のHTML5 Webアプリケーションは、websocket経由でバイナリデータとしてファイルを受け取ります。受信したデータをユーザーのディスクに保存するためのファイルダウンロードダイアログ(javascript経由)を開始する方法はありますか?websocket経由でファイルを受信してダウンロードダイアログを開始
ありがとうございました!
私のHTML5 Webアプリケーションは、websocket経由でバイナリデータとしてファイルを受け取ります。受信したデータをユーザーのディスクに保存するためのファイルダウンロードダイアログ(javascript経由)を開始する方法はありますか?websocket経由でファイルを受信してダウンロードダイアログを開始
ありがとうございました!
まだありません。新しいFile APIは、現在読書のみをカバーしています。 更新:cutting-edge (and to date, non-IE) browsersでこれを行う必要がある場合は、Peter's answerを参照してください。ここではdata:
URIスキームでそれを行うことができます。
これを行う通常の方法は、Webソケット経由でファイルを受け取るのではなく、Content-Disposition: attachment
を使用して隠しiframeにファイルをダウンロードしてファイルダウンロードダイアログを表示させることです。
dataUriを構築し、これを使って新しいウィンドウを開く必要があります。特定のMIMEタイプを使用すると、ブラウザの自動保存ダイアログが表示されます。
例のデータURI:"data:application/octet-stream,base64" + base64binary
+1良い考え、それも動作するようです:http://jsbin.com/acohaz [いくつかのブラウザの互換性の問題が]あり(http://caniuse.com/# feat = datauri) - これはまだ、IE9でも 'data:' URIsをこの方法で使用することはできませんが、実際にはクライアント側でデータを保持してからダウンロードウィンドウを開始する必要がある場合は唯一のゲームです。 –