问题描述
|
我想在javascript中动态生成一个文本文件,然后将其提供下载。目前,我可以通过以下两种解决方案在某种程度上使这项工作正常进行:
content = \"abc123\";
document.location = \"data:text/octet-stream,\" + encodeURIComponent(content);
要么
content = \"abc123\";
var bb = new BlobBuilder();
bb.append(content);
var blob = bb.getBlob();
blob = blob.slice(0,blob.size,\'text/octet-stream\');
var fr = new FileReader();
fr.onload = function() {document.location = this.result;}
fr.readAsDataURL(blob);
但是,当出现下载框时,这两种解决方案都只会在“另存为”对话框中提供默认的文件名“ \ download”。
我的问题基本上是,如何将其更改为特定的文件名,例如\'readme.txt \'或\'scene.obj \'
还要注意,数据类型以前是\'text / plain \',但是,如果使用此类型,则文档将切换到新的文本文档,而不是提供下载(就像text / octet-stream一样)。
我不想要Flash解决方案,请只使用javascript / html5建议。
干杯,乔希
解决方法
为此,您将必须使用FileAPI:Writer规范中的FileSaver。
目前,它只是一个草稿,根据邮件列表的回答,它尚未在浏览器中实现。
您可以观看例如铬问题,以获取有关实施进度的最新信息。
UPD 02.08.2013:此后我找到了一个使用整洁技巧提供FileSaver界面的项目
, 我认为您应该检查一下:jQuery Table to CSV export