从Spring Controller获取Web应用程序根目录

我正在尝试将上载的多部分文件写入文件系统。我有一个名为audio的目录,该目录位于Web应用程序的根目录中(不在WEB-

INF内,但在它旁边,可以像CSS和javascript一样公开访问)。

我想将上传的文件写入该目录,但似乎无法获取所需的路径。我以为使用ServletPath()然后使用realPath()可能可行,但是我没有通过Spring控制器对ServletContext的引用。谢谢你的帮助

@RequestMapping(value="/uploadSample")

public ModelAndView upload(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile f) {

if (f == null) {

return new ModelAndView("upload", "msg", "The file is null.");

}

try {

// I need to set AUDIO_PATH to <webAppRoot>/audio

FileOutputStream file = new FileOutputStream(AUDIO_PATH + "/" + f.getOriginalFilename());

file.write(f.getBytes());

file.close();

}

catch (FileNotFoundException ex) {

Logger.getLogger(SampleUploadController.class.getName()).log(Level.SEVERE, null, ex);

}

catch (IOException ex) {

Logger.getLogger(SampleUploadController.class.getName()).log(Level.SEVERE, null, ex);

}

return new ModelAndView("upload", "msg", "File ( " + f.getOriginalFilename() + ") successfully uploaded.");

}

}

回答:

我认为先获取ServletContext()然后使用realPath()可能有效,但是我没有对ServletContext的引用

是的你是。参见HttpServletRequest.getSession()。getServletContext()

以上是 从Spring Controller获取Web应用程序根目录 的全部内容, 来源链接: utcz.com/qa/419240.html

回到顶部