Ayuda -> Problemas con path en el Apache Commons Fileupload y Tomcat...

jordi
06 de Junio del 2009
Muy buenas a [email protected],

He utilizado la opción de upload de ficheros con jsp de http://jakarta.apache.org/commons/fileupload/, y todo funciona perfectamente, hasta que decido cambiar la localización del fichero en el servidor. Mi problema es que desarrollo mi proyecto de final de carrera sobre windows pero el servidor es un linux, y en el momento de decidir dónde subir el fichero... pues no me funciona. ¿Alguien podria decirme cómo indicarle a un jsp un path relativo para subir ficheros? El destino de las fotos que he de subir iria en %CATALINA_HOME%/webapps/aulavirtual/fotos, pero no se cómo indicar este path relativo a la base de la aplicación web "genéricamente", es decir, con $ en Linux o con % en Windows. De echo, ni siquiera me reconoce ninguna variable, y en el momento de escritura del fichero, he de indicarle toda la ruta entera, del estilo:

String fileName = nombre_fichero_subido;
File fichero = new File(fileName);
fichero = new File("C:\Archivos de Programa\Tomcat 5.0\webapps\aulavirtual\fotos\" + fichero.getName());

Y claro, esto me sirve para Windows, pero no para Linux, y la idea es no necesitar cambiar cada vez ese path, y mucho menos si la aplicación o el servidor cambian de localización... ¿Sería posible que Tomcat reconociese dinámicamente de alguna manera la dirección raíz de la aplicación que está ejecutando tal y como sucede para leer páginas html? Me refiero al ya mencionado %CATALINA_HOME%/webapps/aulavirtual/fotos...

¿Alguien podría ayudarme por favor?

Muchísimas gracias de antemano!

Jordi

malone
06 de Junio del 2009
Realise yo algunas pruebas, y en WIN el path lo cambie
de c:tmpfotos por /tmp/fotos y funciono correctamente en WIN.
Lo cambie ha un servidor linux y lo unico que tuve que hacer es crear la ruta /tmp/fotos con los permisos correspondientes de escritura lectura.

Aprovechando, una pregunta
Utilizando fileipload puedo accesar a parametros de la pagina al igual que los archivos.?
Esto es realizo un formulario com varuios campos y un campo de archivo, lo mando a un servlet que es el que subira el archivo, puedo accesar los parametros y el archivo utilizando http://jakarta.apache.org/commons/fileupload/,
Porque yo lo realizo con unos jar de orrealy.?
GRACIAS

Jordi
06 de Junio del 2009
Muchísimas gracias Ken, he utilizado las Propierties del Java i en efecto he podido conseguir el hom del Catalina. Lo he aplicado y funciona a las mil maravillas, gracias d everdad!

Para malone: yo solo uso las jsp para hacer el upload y no he podido pasar parámetros con el formulario, ya que detecta que le suben un fichero y sólo reconoce el tipo de ichro. Yo lo que hago es pasarle por parámetro url la información que necesitas. Es un poco cutre, pero gracias al pOST no se ve y no se nota (yo sólo paso un campo string).

Pero si se puede, sería interesante saberlo.

Muchas gracias!


Jordi

Ken
06 de Junio del 2009
Es un tiro a ciegas, pero puedes probar...

Quizás el valor de estas constantes esté como propiedad de sistema.

Para verlo, sácalas con System.getProperties() y búsca a ver...

Un saludo,

Ken