在服务器中保存上传文件的位置?

时间:2015-03-15 07:39:08

标签: java jsp tomcat servlets web-hosting

我们使用JSP和Servlet开发了一个Web应用程序。我们使用的服务器是Tomcat 7.我们雇用了一个带有“私有JVM”的主机(Daily Razor)来在生产级别启动应用程序。

现在,在我们的应用程序中,用户可以访问特定表单,在PC中浏览文件并将其上传到服务器。但我在那里有一个问题;存储这些文件的最佳位置是什么?主要有3种类型的文件,所以我们想将它们分类为“Office”,“Home”和“Other”,并为它们创建3个文件夹。但是在哪个主文件夹中应该制作这3个文件夹?

主要的重要性是这些文件不应该通过URL访问(因为任何人都可以获取它们),但Servlet可以。除此之外,位置(字符串)应保存在我们的MySQL数据库中,以便可以再次访问该文件而不会出现问题。

我们使用Netbeans IDE开发了应用程序,因此文件夹结构如下所示。

enter image description here

我期待你的回答。

1 个答案:

答案 0 :(得分:2)

使用java属性指定应存储文件的目录,并在启动期间将其传递给tomcat。 此外,为每个用户分隔文件可能是个好主意。

可能的解决方案:

-Duser.data.export.dir=D:\users_export\directory

在您的java代码中,阅读属性

String property = System.getProperty("user.data.export.dir");

现在假设用户'A'

String userName = getCurrentUser();
Path userDirHome = Paths.get(property, userName, "Home");<br/>

现在使用userDirHome存储数据。

建议:将文件位置存储在数据库中时,请确保不存储完整路径,只存储相对路径,如“Home / myFile.txt”。

这将在稍后的时间点帮助您,当存储文件的目录发生任何变化时。