从java下载动态创建的文本文件,直接写入计算机或保存在服务器上?

smtd7mpg  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(317)

当用户单击我的网页上的下载按钮(用简单的javascript编码)时,它会触发一个调用java文件的php函数。这个java代码连接到数据库并写入文本文件。
目前,代码正在我的本地机器上开发。以下是当前正在创建本地文本文件并将信息写入其中的代码片段:

StreamFactory sf = StreamFactory.newInstance();
        sf.loadResource("mapping.xml");
        File file = new File("C:\\MyLocal\\foo.txt");
        BeanWriter bw = sf.createWriter("fileExport", file);

        // writes beans
        bw.write("", "");
        ...

        bw.flush(); // flushes to foo.txt located in C:\MyLocal

我的问题是,是否可以将这个动态创建的文本文件写入用户的计算机而不是本地计算机,如果可以,这是一个好的web开发实践吗?这样做的好处是我不需要在代码将驻留的服务器上存储foo.txt。但是,我对web开发实践不是很熟悉,也没有看到关于这个主题的具体规则。
如果最好将它保存到服务器上,然后从那里实现一些下载代码,那么这应该在页面的php或java后端函数中处理吗?

ddarikpa

ddarikpa1#

无法在用户的计算机文件系统上写入。
由于javascript安全措施,如果不是因为这个原因,恶意网站/webapp可能会在用户硬盘上写入大量数据,或者编写恶意脚本。
用户可以选择下载文件,但网页不能直接访问用户文件系统。
有一个提议api可以做这样的事情,但是它已经停止了https://www.html5rocks.com/en/tutorials/file/filesystem/
回答您的问题:尝试在用户文件系统上编写文件肯定不是一个好的做法
您应该在后端用java处理下载

相关问题