Tengo una aplicación web con un formulario de carga donde los usuarios pueden cargar archivos.Java EE: ¿la mejor manera de obtener una ruta real para los archivos cargados?
Me gustaría almacenar los archivos de una carpeta 'archivos'. Y me gustaría que esta carpeta se coloque directamente debajo de la raíz de la aplicación web.
Usando struts2, en mi uploadFileAction, puedo configurar fácilmente este camino con String uploadDir = ServletActionContext.getServletContext().getRealPath("/files")+ "/";
pero cuando estoy tratando de recuperar los archivos, por lo visto mi grano de la que intenta acceder al archivo no tiene acceso a getServletContext()
y por lo tanto arroja un nullpointer en getRealPath
Ahora estoy tratando de averiguar cómo debo abordar esto. He oído que los recursos de primavera son el camino a seguir, pero no puedo encontrar ningún ejemplo relevante.
¿Hay alguna manera fácil de obtener mis rutas? Solo quiero el rootpath para mi aplicación web. Nada más y nada menos ...
Wow. No pensé en eso. Gracias por señalar mi error obvio. Pero como me muevo entre plataformas (ventanas de Linux), necesito una ruta relativa a mi directorio de carga. No me gusta editar un archivo de propiedades cada vez que hago un salto de plataforma ... – user829237
En Java 'File' API, las rutas tipo Unix como'/var/webapp/uploads' funcionan perfectamente bien en Windows también. Simplemente será relativo al disco desde donde se ejecuta el código y Java se ocupará de las barras. P.ej. cuando el servidor se ejecuta en 'C:', terminará como 'C: \ var \ webapp \ uploads'. – BalusC
Gracias por despejar ese bit up. Perdóname por ser unix-newb, pero aún no estoy seguro de cómo especificar el camino, ya que mi servidor unix es un host compartido y creo que solo tengo acceso al directorio ~ y tendré que poner el archivos en algún lugar debajo de eso ... ¡Cualquier apuntador sería de gran ayuda! – user829237