在Java Web应用程序中存储临时文件的位置?

时间:2013-07-31 14:32:05

标签: java web-applications spring-mvc

我正在开发一个java / spring-mvc网络应用程序,它使用调度系统生成csv文件以通过电子邮件发送。

我的第一个想法是在服务器本地生成这些文件,然后将它们发送给收件人,但现在我有一个疑问。存储临时文件的位置?

我将我的应用程序部署为战争,所以我知道可能存在问题。

在WEB-INF目录中创建临时目录是个坏主意吗?另一种方法是序列化这些文件并将它们存储在数据库表中。

你的建议是什么?任何最佳做法?

2 个答案:

答案 0 :(得分:8)

我会把它留在jvm上,即使用java.io.tmpdir系统属性。在tmp目录(new File(system.getProperty("java.io.tmpdir")).mkdir())中创建一个目录,或者只在tmp目录(File.createTempFile("name", ".csv"))中创建一个目录。
对于在Tomcat上运行的应用程序,tmp目录为<catalina_home_directory>/temp

答案 1 :(得分:1)

How to create a temporary directory/folder in Java? - 关于如何在Java 7中以最佳方式执行此操作。

听起来真正的简单临时文件正是您所需要的 - 而且您并不需要担心存储它们的位置,Java会为您做到这一点。如果您只是暂时需要它们,为什么要将它们存储在数据库中?数据库用于您关心的持久存储。序列化的麻烦,呃...