Java EE - 获取上传文件的真实路径的最佳方式?

use*_*237 5 servlets file-upload save

我有一个带有上传表单的Web应用程序,用户可以上传文件.

我想将文件存储在文件夹'files'中.我希望这个文件夹直接放在webapp-root下.

使用struts2,在我的uploadFileAction中,我可以轻松设置此路径 String uploadDir = ServletActionContext.getServletContext().getRealPath("/files")+ "/";

但是当我试图检索文件时,显然我尝试访​​问该文件的bean无法访问getServletContext(),因此会抛出nullpointergetRealPath

现在我想弄清楚我应该如何处理这个问题.我听说过弹簧资源是要走的路,但是我找不到任何相关的例子.

有一个简单的方法来获得我的路径?我只想将rootpath发送到我的webapp.没有更多的东西......

Bal*_*usC 8

我希望这个文件夹直接放在webapp-root下.

这不会起作用.重新部署Web应用程序或重新启动服务器时,所有这些文件都将丢失.这些文件不包含在原始WAR的一部分中.

您需要将它们存储在webapp上下文之外的固定路径中.例如/var/webapp/uploads.您可以在属性文件中或作为系统属性配置此路径.