在PHP世界中,通常在应用程序文件夹中创建一个名为“uploads”的目录或类似的东西。然后将所有上载的文件存储在那里,数据库包含这些文件的相对路径。
然而,在Java / servlet世界中,我不确定处理上传文件的常用方法是什么。获取应用程序目录内目录的路径可能很困难,如果重新部署WAR文件,则可能会销毁整个目录。目前我将上传的文件作为blob存储在数据库中,但这不是我首选的解决方案。
所以我的问题是,我应该在哪里存储上传的文件?
答案 0 :(得分:4)
磁盘上不属于应用程序文件结构的任何文件夹,也不属于应用程序服务器/容器服务器。您可以将此文件夹/文件夹的绝对路径保留为文件或数据库中的配置。
答案 1 :(得分:1)
为什么不存储在.war层次结构之外的目录中?在servlet参数中指定一个目录(使其可配置),并在servlet初始化时检查/创建(所以当有人第一次上传文件时,事情不会先爆发。)
答案 2 :(得分:0)
做同样的事情;在文件系统的某处创建一个uploads文件夹并将文件粘贴在那里。请勿将其放入Web容器中,因为如果部署了WAR,它将被删除。
答案 3 :(得分:0)
答案 4 :(得分:0)
将它们保存到数据库中的blob字段 - 任何现代数据库都能够处理这个问题。
我的一个例外是,当你通过处理servlet容器外的请求获得性能提升时,你正在提供高频率的文件。