Pman.Download.js
[Pman.Core] / Pman.Download.js
index be40438..9dba6b4 100644 (file)
@@ -127,12 +127,34 @@ Pman.Download = function(cfg)
         
     }
     var req = new XMLHttpRequest();
+    req.responseType = 'blob';
     req.open(this.method, this.url);
     
     var _t = this;
     req.onload = function( ev )
     {
         if (req.status == 200) {
+            Roo.log(ev);
+            var cd = req.getResponseHeader('Content-Disposition');
+            
+            var filename = '';
+            var matches = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(cd);
+            if (matches != null && matches[1]) { 
+                filename = matches[1].replace(/['"]/g, '');
+            }
+            
+            var blob = new Blob([req.response], {type: req.responseType });
+            
+            var a = document.createElement("a");
+            a.style = "display: none";
+            document.body.appendChild(a);
+            var url = window.URL.createObjectURL(blob);
+            a.href = url;
+            a.download = filename;
+             a.click();
+            //release the reference to the file by revoking the Object URL
+            window.URL.revokeObjectURL(url);
+            
             _t.success ? _t.success(ev) : '';
         } else {
             _t.failure ? _t.failure(ev) : '';