Zen*_*nce 5 javascript file client-side
我想尝试创建一个Javascript应用程序,它从表单中获取用户的输入,然后根据用户的表单输入生成一个文件.
然后,用户可以在不触及服务器的情况下下载该文件.
如何在客户端使用JavaScript创建文件,在客户端如何存储文件,以便可以在不首先在服务器上创建的情况下下载?
更新:更具体的是,Graham回答说,我一直在寻找创建文件的方法,而不必触及文件系统本身,只是创建一个可由用户下载的文件对象(Blob).谢谢格雷厄姆!
小智 14
在不使用文件系统的情况下执行此操作的一种方法是创建blob.假设我们有一堆数据(在您的情况下,来自表单),我们希望将其保存为文本"文件".我们实际上可以做如下事情:
var formBlob = new Blob([someStringVariable], { type: 'text/plain' });
Run Code Online (Sandbox Code Playgroud)
从这里,我们可以链接用户将其下载为实际文件,如下所示:
someLink.href = window.URL.createObjectURL(formBlob);
Run Code Online (Sandbox Code Playgroud)
如果我们希望这些数据保持不变,我们可以将blob序列化为base64字符串,并将其保存到localStorage或任何其他持久存储类型.将blob转换为base64有点超出了本答案的范围,但你可以在这里找到一个好的参考/库:http://blog.danguer.com/2011/10/24/base64-binary-decoding-in-javascript/