保存文件与文件名的Javascript
我正在使用纯Javascript编写文本编辑器。 我喜欢这样,当用户点击“保存”button时,编辑器会下载文件。 我已经有这个部分工作:
uriContent = "data:application/octet-stream," + encodeURIComponent(codeMirror.getValue()); newWindow=window.open(uriContent, 'filename.txt');
文件下载,但问题是该文件被命名为“下载”。
问题 :如何将文件的名称更改为我想要的内容,例如filename.txt
?
用锚点链接replace您的“保存”button,并dynamic设置新的download
属性。 适用于Chrome和Firefox:
var d = "ha"; $(this).attr("href", "data:image/png;base64,abcdefghijklmnop").attr("download", "file-" + d + ".png");
下面是一个工作示例,其名称设置为当前date: http : //jsfiddle.net/Qjvb3/
这里有一个download
属性的兼容表: http : //caniuse.com/download
function saveAs(uri, filename) { var link = document.createElement('a'); if (typeof link.download === 'string') { document.body.appendChild(link); // Firefox requires the link to be in the body link.download = filename; link.href = uri; link.click(); document.body.removeChild(link); // remove the link when done } else { location.replace(uri); } }
使用filename
属性,如下所示:
uriContent = "data:application/octet-stream;filename=filename.txt," + encodeURIComponent(codeMirror.getValue()); newWindow=window.open(uriContent, 'filename.txt');
编辑:
显然,没有可靠的方法来做到这一点。 请参阅: 使用data:URI时是否有任何方法来指定build议的文件名?