|
|
@ -159,6 +159,24 @@ |
|
|
|
|
|
|
|
<textarea id="output" rows="8"></textarea> |
|
|
|
|
|
|
|
<script type='text/javascript' src="https://cdn.jsdelivr.net/gh/eligrey/FileSaver.js/dist/FileSaver.min.js"> </script> |
|
|
|
<script type='text/javascript'> |
|
|
|
function SaveFileFromMEMFSToDisk(memoryFSname, localFSname) // This can be called by C/C++ code |
|
|
|
{ |
|
|
|
var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); |
|
|
|
var data = FS.readFile(memoryFSname); |
|
|
|
var blob; |
|
|
|
|
|
|
|
if (isSafari) blob = new Blob([data.buffer], {type: "application/octet-stream"}); |
|
|
|
else blob = new Blob([data.buffer], {type: "application/octet-binary"}); |
|
|
|
|
|
|
|
// NOTE: SaveAs Dialog is a browser setting. For example, in Google Chrome, |
|
|
|
// in Settings/Advanced/Downloads section you have a setting: |
|
|
|
// 'Ask where to save each file before downloading' - which you can set true/false. |
|
|
|
// If you enable this setting it would always ask you and bring the SaveAs Dialog |
|
|
|
saveAs(blob, localFSname); |
|
|
|
} |
|
|
|
</script> |
|
|
|
<script type='text/javascript'> |
|
|
|
var statusElement = document.getElementById('status'); |
|
|
|
var progressElement = document.getElementById('progress'); |
|
|
|