Răsfoiți Sursa

Allow file download from MEMFS

Support file download to disk from memory filesystem.
Ray 6 ani în urmă
părinte
comite
456483f104
1 a modificat fișierele cu 18 adăugiri și 0 ștergeri
  1. 18 0
      templates/web_shell/shell.html

+ 18 - 0
templates/web_shell/shell.html

@@ -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');