From 3f590cc789b17fa7d09b5977108d7f1029fe7444 Mon Sep 17 00:00:00 2001 From: Martin Mochetti Date: Tue, 30 Dec 2014 19:41:17 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Fixes:=20-=201)=20File=20name=20was=20not?= =?UTF-8?q?=20being=20set=20properly=20(always=20using=20"download")=20-?= =?UTF-8?q?=202)=20Sometimes=20it's=20neede=20to=20use=20an=20octet-stream?= =?UTF-8?q?=20instead=20of=20a=20base64=20string=20in=20order=20to=20avoud?= =?UTF-8?q?=20encoding=20issues=20with=20characters=20like=20"=C3=B1"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tableExport.js | 69 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 14 deletions(-) diff --git a/tableExport.js b/tableExport.js index 1bfaa0fc..b9cc5602 100644 --- a/tableExport.js +++ b/tableExport.js @@ -74,8 +74,15 @@ THE SOFTWARE.*/ if(defaults.consoleLog == 'true'){ console.log(tdData); } - var base64data = "base64," + $.base64.encode(tdData); - window.open('data:application/'+defaults.type+';filename=exportData;' + base64data); + var base64data = "data:application/"+defaults.type+";base64," + $.base64.encode(tdData); + var octetData = 'data:application/octet-stream,' + encodeURIComponent(tdData); + var a = $("", { + download: "export."+defaults.type, + href: octetData, + _target: "blank" + }); + a[0].click(); + a.remove(); }else if(defaults.type == 'sql'){ // Header @@ -118,10 +125,15 @@ THE SOFTWARE.*/ console.log(tdData); } - var base64data = "base64," + $.base64.encode(tdData); - window.open('data:application/sql;filename=exportData;' + base64data); - - + var base64data = "data:application/sql;base64," + $.base64.encode(tdData); + var octetData = 'data:application/octet-stream,' + encodeURIComponent(tdData); + var a = $("", { + download: "export.sql", + href: octetData, + _target: "blank" + }); + a[0].click(); + a.remove(); }else if(defaults.type == 'json'){ var jsonHeaderArray = []; @@ -167,8 +179,15 @@ THE SOFTWARE.*/ if(defaults.consoleLog == 'true'){ console.log(JSON.stringify(jsonExportArray)); } - var base64data = "base64," + $.base64.encode(JSON.stringify(jsonExportArray)); - window.open('data:application/json;filename=exportData;' + base64data); + var base64data = "data:application/json;base64," + $.base64.encode(JSON.stringify(jsonExportArray)); + var octetData = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(jsonExportArray)); + var a = $("", { + download: "export.json", + href: octetData, + _target: "blank" + }); + a[0].click(); + a.remove(); }else if(defaults.type == 'xml'){ var xml = ''; @@ -208,9 +227,15 @@ THE SOFTWARE.*/ console.log(xml); } - var base64data = "base64," + $.base64.encode(xml); - window.open('data:application/xml;filename=exportData;' + base64data); - + var base64data = "data:application/xml;base64," + $.base64.encode(xml); + var octetData = 'data:application/octet-stream,' + encodeURIComponent(xml); + var a = $("", { + download: "export.xml", + href: octetData, + _target: "blank" + }); + a[0].click(); + a.remove(); }else if(defaults.type == 'excel' || defaults.type == 'doc'|| defaults.type == 'powerpoint' ){ //console.log($(this).html()); var excel=""; @@ -275,9 +300,25 @@ THE SOFTWARE.*/ excelFile += ""; excelFile += ""; - var base64data = "base64," + $.base64.encode(excelFile); - window.open('data:application/vnd.ms-'+defaults.type+';filename=exportData.doc;' + base64data); - + var extension; + if (defaults.type == 'excel') + extension = 'xls'; + + if (defaults.type == 'doc') + extension = 'doc'; + + if (defaults.type == 'powerpoint') + extension = 'ppt'; + + var base64data = "data:application/"+extension+";base64," + $.base64.encode(excelFile); + var octetData = 'data:application/octet-stream,' + encodeURIComponent(excelFile); + var a = $("", { + download: "export."+extension, + href: base64data, + _target: "blank" + }); + a[0].click(); + a.remove(); }else if(defaults.type == 'png'){ html2canvas($(el), { onrendered: function(canvas) { From 30c862eb83bc9f75cef81a448c4e364f37b67bf2 Mon Sep 17 00:00:00 2001 From: Eiichiro Watanabe Date: Wed, 20 May 2015 10:40:51 +0900 Subject: [PATCH 2/2] Use tableName option as exported file name --- tableExport.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tableExport.js b/tableExport.js index b9cc5602..b8d51f63 100644 --- a/tableExport.js +++ b/tableExport.js @@ -77,7 +77,7 @@ THE SOFTWARE.*/ var base64data = "data:application/"+defaults.type+";base64," + $.base64.encode(tdData); var octetData = 'data:application/octet-stream,' + encodeURIComponent(tdData); var a = $("", { - download: "export."+defaults.type, + download: defaults.tableName+"."+defaults.type, href: octetData, _target: "blank" }); @@ -128,7 +128,7 @@ THE SOFTWARE.*/ var base64data = "data:application/sql;base64," + $.base64.encode(tdData); var octetData = 'data:application/octet-stream,' + encodeURIComponent(tdData); var a = $("", { - download: "export.sql", + download: defaults.tableName+".sql", href: octetData, _target: "blank" }); @@ -182,7 +182,7 @@ THE SOFTWARE.*/ var base64data = "data:application/json;base64," + $.base64.encode(JSON.stringify(jsonExportArray)); var octetData = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(jsonExportArray)); var a = $("", { - download: "export.json", + download: defaults.tableName+".json", href: octetData, _target: "blank" }); @@ -230,7 +230,7 @@ THE SOFTWARE.*/ var base64data = "data:application/xml;base64," + $.base64.encode(xml); var octetData = 'data:application/octet-stream,' + encodeURIComponent(xml); var a = $("", { - download: "export.xml", + download: defaults.tableName+".xml", href: octetData, _target: "blank" }); @@ -313,7 +313,7 @@ THE SOFTWARE.*/ var base64data = "data:application/"+extension+";base64," + $.base64.encode(excelFile); var octetData = 'data:application/octet-stream,' + encodeURIComponent(excelFile); var a = $("", { - download: "export."+extension, + download: defaults.tableName+"."+extension, href: base64data, _target: "blank" });