Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > JSP - subir imagenes y guardarlas independiente del directorio de la aplicacion

Hola a todos,
estoy programando una aplicacion web con Netbeans (jsp + mysql), necesito subir imagenes y guardarlas fuera del directorio donde esta la aplicacion, asi no pierdo las imagenes cuando actualizo la apliacion. Intente con:

getServletContext().getRealPath("")+ File.separator ..bla bla bla......, guarda, pero dentro de la aplicacion, y tambien necesito poder mostrarlas....entiendo que debo usar una direccion absoluta, pero no logro hacerlo funcionar...

Por ejemplo, uso este codigo para guardar la imagen:

File archivo_server = new File(direccion+nombreFoto);

por ejemplo, si corro mi sitio en http://localhost:8080/misitio

intento guardar las imagenes en http://localhost/images

es una de las tantas cosas que probe, pero no logro resolverlo.
muchas gracias por su tiempo.
Victor.

abril 5, 2014 | Unregistered CommenterVictor

Estás tratando de guardar imágenes en una URL??
new File("http://localhost/images/" + nombrefoto);

??

abril 6, 2014 | Unregistered CommenterUnoPorAhi

No, y tu entendiste mi traba,? ` guardar imagenes fuera de la aplicacion' si no quieres participar sanamente no hagas que pierda mi tiempo contestandote.

abril 6, 2014 | Unregistered Commentervictor

Con esa actitud nadie se tomará la molestia siquiera de entender "tu traba". Bájale de tono y al menos agradece a @UnoPorAhi que ha ayudado bastante a otro usuarios.

abril 7, 2014 | Registered Commenterantoniovl

Victor si deseas guardar algun archivo, puedes hacerlo en cualquier ruta de tu disco duro:

Ejemplo

c:\sistema\files\imagenes

Para crear un archivo en esa ruta, solo necesitas:

File archivo_server = new File("c:\sistema\files\imagenes\imagen-001.jpg");

No necesitas la ruta de donde esta el war, solo elige un path que exista en el disco duro y listo.

Cre que antoniovl, como muchos en este foro, solo te queria ayudar y no merece tu ultima frase.

Saludos

abril 7, 2014 | Unregistered Commenterjrichard

@victor

"... intento guardar las imagenes en http://localhost/images"
La pregunta de @UnoPorAhi es totalmente pertinente, porque es lo que se deduce de lo que tu mismo has escrito. Yo también me he hecho la misma pregunta.

Si alguien quiere ayudarte desinteresadamente, como es el caso, no le hagas tu perder su tiempo con preguntas incompletas o confusas, y haz el favor de tener un mínimo de educación y respeto.
El problema lo tienes tu, y quienes usan su tiempo para ayudarte a resolverlo, merecen toda la consideración posible.

http://docs.oracle.com/javase/7/docs/api/java/io/File.html

abril 7, 2014 | Registered Commenterchoces

Muchas gracias por tu amabilidad, festejo las personas que comparten su conocimiento sin intentar dejar en ridiculo el desconocimiento del otro. Gracias

abril 7, 2014 | Unregistered Commentervictor

Mi respuesta fue para jrichard. Gracias

abril 7, 2014 | Unregistered Commentervictor

Manda cojones!

abril 7, 2014 | Unregistered Commenterfileal_v

hola,
a mi sí me gustaría referenciar una imagen ubicada en http://localhost/images
¿es posible?
Si tengo una carpeta images dentro del proyecto, no tengo problemas para acceder con
'

Sin embargo, si está dentro de tomcat no consigo acceder a ella
(con ' no ha resultado)

Muchas gracias

abril 16, 2014 | Unregistered Commenteralberto

Con File no, pero aqui tienes otras opciones:

http://stackoverflow.com/questions/926938/how-to-load-a-image-from-web-in-java

Un saludo

abril 16, 2014 | Unregistered CommenterUnoPorAhi

buenos dias a todos,

vuelvo a insistir con este tema, es la primera vez que instalo un sistema JSP - SERVLES - HIBERNATE - MYSQL en un servidor fuera de mi pc,
el proveedor me paso los siguientes datos, logre instalar el sistema satisfactoriamente y guardar y leer las fotografias, pero cuando guarda, lo hace
dentro de mi sistema y yo quiero que guarde fuera de el.

estos son los datos que me dio el proveedor:

- For directory, your home directory is /home/victor.
- Your Tomcat root is /usr/local/shared/tomcat/victor.
- Once you login to your FTP account, you will be in /usr/local/shared/tomcat/victor.

este es mi arbol de directorios dentro del servidor, yo quiero guardar las fotos en la carpeta "FOTOS" fuera de MY_SISTEMA, asi me desentiendo de
hacer un backup de las fotos cada vez que actualizo:

/
-> bin
-> conf
-> lib
-> logs
-> temp
-> webapps
-> docs
-> examples
-> host-manager
-> manager
-> ROOT
-> MY_SISTEMA
-> FOTOS (aqui quiero guardar las fotos)
-> work

este codigo lo tengo en el servlet donde guardo las fotos y demas:

String direccion = request.getSession().getServletContext().getRealPath("/")+"fotos/"; -> (lo guarda dentro del sistema)

intente tambien con,

String direccion1 = "/home/victor/webapps/fotos/" ; -> (no guarda nada o nose donde lo hacer)

muchas gracias por su participacion.

abril 23, 2014 | Unregistered CommenterVictor

perdon, esta es la estructura correcta del servidor, copie y pego mal, MY_SISTEMA esta dentro de "webapps" y necesito guardar las fotos fuera de el. Gracias.
/
-> bin
-> conf
-> lib
-> logs
-> temp
-> webapps
-> docs
-> examples
-> host-manager
-> manager
-> ROOT
-> MY_SISTEMA
-> FOTOS (aqui quiero guardar las fotos)
-> work

abril 23, 2014 | Unregistered CommenterVictor

insisto, no me pega el "espacio" por lo visto, disculpen la desprolijidad..

/
-> bin
-> conf
-> lib
-> logs
-> temp
-> webapps
----> docs
----> examples
----> host-manager
----> manager
----> ROOT
----> MY_SISTEMA
-> FOTOS (aqui quiero guardar las fotos)
-> work

abril 23, 2014 | Unregistered CommenterVictor

Hola Victor. Esto ya se esta poniendo verde XD.

Se aprecia 3 directorios:
* Servidor de Aplicaciones
* /home/victor
* /usr/local/shared/tomcat/victor

Para guardar cualquier clase de archivo en una ruta que no sea el servidor, prueba con esto:

http://stackoverflow.com/questions/10897221/how-to-save-the-the-image-in-folder-on-disk-using-java

try {

BufferedImage bi = getMyImage();
File outputfile = new File("/home/victor/"+"saved.png");
ImageIO.write(bi, "png", outputfile);

}catch(Exception e){
e.printStackTrace();
}

Esto deberia funcionar. Si puedes ejecutalo en tu sistema y muestranos que error sale.

Lo unico que podria fallar aqui es que :

1.- La ruta /home/victor/ no exista
2.- No tengas permisos de lectura/escritura en la ruta : /home/victor/

Aqui un ejemplo muy bueno de como subir un archivo al servidor usando servlet:
http://www.tutorialspoint.com/servlets/servlets-file-uploading.htm

En este ejemplo , se guarda el archivo en :
// Location to save data that is larger than maxMemSize.
factory.setRepository(new File("c:\\temp"));

Tu podrias cambiarlo a:
// Location to save data that is larger than maxMemSize.
factory.setRepository(new File("/home/victor"));
o
factory.setRepository(new File("/usr/local/shared/tomcat/victor"));

Si esto no te funciona, podrias mostrarnos algo del codigo que usas para guardar el archivo.

Espero te ayude.

Saludos
JRichard
http://jrichardsz.weebly.com

abril 23, 2014 | Unregistered Commenterjrichard