标签:javascript file client-side
参见英文答案 > 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。