receive file via websocket and initiate download d

2019-01-23 18:01发布

问题:

my HTML5 web application receives a file as binary data via a websocket. Is there any way to initiate a file download dialog (via javascript) to save the received data to the users disk?

Thank you!

回答1:

You need to build a dataUri and open a new window with this. Specific mimetypes can trigger the browser's automatic save as dialog.

Example data uri: "data:application/octet-stream,base64" + base64binary



回答2:

Not yet, no. The new File API currently only covers reading. Update: See Peter's answer if you only need to do this on cutting-edge (and to date, non-IE) browsers, where you can do it with the data: URI scheme.

The usual way to do this would be to receive the file via HTTP into a hidden iframe using Content-Disposition: attachment to trigger the file download dialog, rather than receiving it via a web socket.