Servlets:存储上传文件的位置?

时间:2009-07-31 14:29:23

标签: java servlets file-upload

在PHP世界中,通常在应用程序文件夹中创建一个名为“uploads”的目录或类似的东西。然后将所有上载的文件存储在那里,数据库包含这些文件的相对路径。

然而,在Java / servlet世界中,我不确定处理上传文件的常用方法是什么。获取应用程序目录内目录的路径可能很困难,如果重新部署WAR文件,则可能会销毁整个目录。目前我将上传的文件作为blob存储在数据库中,但这不是我首选的解决方案。

所以我的问题是,我应该在哪里存储上传的文件?

5 个答案:

答案 0 :(得分:4)

磁盘上不属于应用程序文件结构的任何文件夹,也不属于应用程序服务器/容器服务器。您可以将此文件夹/文件夹的绝对路径保留为文件或数据库中的配置。

答案 1 :(得分:1)

为什么不存储在.war层次结构之外的目录中?在servlet参数中指定一个目录(使其可配置),并在servlet初始化时检查/创建(所以当有人第一次上传文件时,事情不会先爆发。)

答案 2 :(得分:0)

做同样的事情;在文件系统的某处创建一个uploads文件夹并将文件粘贴在那里。请勿将其放入Web容器中,因为如果部署了WAR,它将被删除。

答案 3 :(得分:0)

像Brian和Boris提到的那样。为什么不将上传的文件存储在WAR目录之外。为什么在应用程序目录之外获取路径很困难。

答案 4 :(得分:0)

将它们保存到数据库中的blob字段 - 任何现代数据库都能够处理这个问题。

我的一个例外是,当你通过处理servlet容器外的请求获得性能提升时,你正在提供高频率的文件。