我正在使用插件从表生成csv文件,文件正在下载带有"下载"文件名,如何更改文件名,例如dowload.csv
var csv = $("#table").table2CSV({delivery:'download'});
window.location.href = 'data:text/csv;charset=UTF-8,'+ encodeURIComponent(csv);
Run Code Online (Sandbox Code Playgroud)
dan*_*vis 29
我编写了一个工具,您可以使用该工具将文件保存到本地计算机的下载文件夹中,并使用自定义文件名,如果可以在客户端的计算机上进行.
在撰写本文时,你需要chrome,firefox或IE10来实现这一特定功能,但是这个工具可以回归到一个未命名的下载,如果那就是可用的,因为有些东西总比没有好......
供您使用:
download(csv, "dowload.csv", "text/csv");
Run Code Online (Sandbox Code Playgroud)
和神奇的代码:
function download(strData, strFileName, strMimeType) {
var D = document,
a = D.createElement("a");
strMimeType= strMimeType || "application/octet-stream";
if (navigator.msSaveBlob) { // IE10
return navigator.msSaveBlob(new Blob([strData], {type: strMimeType}), strFileName);
} /* end if(navigator.msSaveBlob) */
if ('download' in a) { //html5 A[download]
a.href = "data:" + strMimeType + "," + encodeURIComponent(strData);
a.setAttribute("download", strFileName);
a.innerHTML = "downloading...";
D.body.appendChild(a);
setTimeout(function() {
a.click();
D.body.removeChild(a);
}, 66);
return true;
} /* end if('download' in a) */
//do iframe dataURL download (old ch+FF):
var f = D.createElement("iframe");
D.body.appendChild(f);
f.src = "data:" + strMimeType + "," + encodeURIComponent(strData);
setTimeout(function() {
D.body.removeChild(f);
}, 333);
return true;
} /* end download() */
Run Code Online (Sandbox Code Playgroud)
更新:添加了面向未来的IE例程
update2:检查GitHub上包含dataURL和Blob支持的进化版本.