1

我想在我的 web 项目的根路径创建一个临时文件夹来上传文件。我用谷歌搜索过:

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public void torrent2magnet(HttpSession session) {
    String uploadBaseDir = session.getServletContext().getRealPath("/")+File.separator+"uploadFiles"+File.separator;
}

可以获取到 web 项目的相对路径。但是有两个障碍如下:

1:session.getServletContext().getRealPath("/")使用不同的容器(如tomcat或weblogic)时可以采取不同的行动。在最坏的情况下,它可能会返回null

2:我打算写一个@Service类,里面会提供一个方法来返回当前web项目的根路径。我怎样才能ServletContext在我的班级中获得一个实例@Service

有没有更优雅的方法来解决这两个问题?非常感谢!

4

1 回答 1

1

只需实现ServletContextAware接口即可自动注入 ServletContext。覆盖setServletContext方法。请点击链接

还有一个建议是,请将您的上传目录放在您的应用程序之外。这总是一个好的设计

于 2013-11-15T09:41:26.240 回答