从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