我如何生成文件并将其提供为以纯JavaScript下载?

问题描述

| 我想在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     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...