Estoy intentando escribir un archivo multiparte cargado en el sistema de archivos. Tengo un directorio llamado audio que se encuentra en la raíz de mi aplicación web (no dentro de WEB-INF, pero a su lado, a su acceso público como css y javascript).Obtener la raíz de la aplicación web desde Spring Controller
Quiero escribir el archivo cargado en ese directorio pero parece que no puedo encontrar el camino que necesito. Pensé que podría funcionar un ServletContext() y luego usar realPath(), pero no tengo una referencia a ServletContext a través de un controlador de Spring. Gracias por cualquier hep
@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.");
}
}
Gracias por hacerme esta pregunta, fue bastante útil ya que también tuve este problema. – MetroidFan2002