微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用HTML5/Javascript生成和保存文件

我最近一直在欺骗WebGL,并得到了一个Collada阅读器工作。问题是它很慢(Collada是一个非常详细的格式),所以我要开始转换文件一个更容易使用的格式(可能是JSON)。事情是,我已经有代码来解析Javascript中的文件,所以我可以使用它作为我的出口商太!问题是节省。

现在,我知道我可以解析文件,将结果发送到服务器,并让浏览器从服务器请求文件作为下载。但在现实中,服务器与这个特定的过程无关,所以为什么要涉及?我已经有内存中所需的文件内容。有没有什么办法,我可以提出用户使用纯javascript下载? (我怀疑,但也许会问…)

并要明确:我不是试图访问文件系统没有用户的知识!用户将提供一个文件(可能通过拖放),脚本将转换内存中的文件,并提示用户下载结果。就浏览器而言,所有这些都应该是“安全”的活动。

[编辑]:我没有提前,所以回答“Flash”的海报是足够有效,但我所做的一部分是试图突出可以做什么纯的HTML5 …所以Flash是在我的情况下。 (虽然这是一个完全有效的答案,任何人做一个“真正的”网络应用程序。)这是这样的情况下,看起来像我失去了运气,除非我想涉及服务器。不管怎么说,还是要谢谢你!

解决方法

OK,创建一个数据:URI绝对是我的伎俩,感谢马修和Dennkster指出的选择!这里基本上是怎么做的:

1)将所有内容转换为称为“内容”的字符串(例如,通过最初创建它或通过读取已经构建的页面标签的innerHTML)。

2)构建数据URI:

uriContent = "data:application/octet-stream," + encodeURIComponent(content);

根据浏览器类型等,会有长度限制,但是例如。 Firefox 3.6.12工作到至少256k。编码在Base64而不是使用encodeURIComponent可能会使事情更有效率,但对我来说,确定。

3)打开一个新窗口并“重定向”到此URI提示我的JavaScript生成页面的下载位置:

newWindow = window.open(uriContent,'neuesDokument');

而已。

原文地址:https://www.jb51.cc/html5/170640.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。