如何以编程方式在Javascript中创建可由用户下载的客户端文件?
作者:互联网
参见英文答案 > How to create a file in memory for user to download, but not through server? 20个
我想尝试创建一个Javascript应用程序,它从表单中获取用户的输入,然后根据用户的表单输入生成一个文件.
然后,用户可以在不触及服务器的情况下下载该文件.
如何在客户端使用JavaScript创建文件,在客户端如何存储文件,以便可以在不首先在服务器上创建的情况下下载?
更新:为了更加具体,格雷厄姆回答说,我一直在寻找创建文件的方法,而不必触及文件系统本身,只是创建一个可以由用户下载的文件对象(Blob).谢谢格雷厄姆!
解决方法:
在不使用文件系统的情况下执行此操作的一种方法是创建blob.假设我们有一堆数据(在您的情况下,来自表单),我们希望将其保存为文本“文件”.我们实际上可以做如下事情:
var formBlob = new Blob([someStringVariable], { type: 'text/plain' });
从这里,我们可以链接用户将其下载为实际文件,如下所示:
someLink.href = window.URL.createObjectURL(formBlob);
如果我们希望这些数据保持不变,我们可以将blob序列化为base64字符串,并将其保存到localStorage或任何其他持久存储类型.将blob转换为base64有点超出了本答案的范围,但你可以在这里找到一个好的参考/库:http://blog.danguer.com/2011/10/24/base64-binary-decoding-in-javascript/
标签:javascript,file,client-side 来源: https://codeday.me/bug/20190928/1828108.html