Foros del Web » Programación para mayores de 30 ;) » Java »

Subir un archivo al servidor

Estas en el tema de Subir un archivo al servidor en el foro de Java en Foros del Web. Hola a todos, estoy trabajando en un proyecto desarrollando en j2ee y necesito saber como subir un archivo desde una pagina web, estaba lellendo que ...
  #1 (permalink)  
Antiguo 29/08/2007, 09:43
 
Fecha de Ingreso: junio-2004
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Pregunta Subir un archivo al servidor

Hola a todos, estoy trabajando en un proyecto desarrollando en j2ee y necesito saber como subir un archivo desde una pagina web, estaba lellendo que se puede hacer con struts pero no me funciona.

Saludos
  #2 (permalink)  
Antiguo 29/08/2007, 10:21
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: Subir un archivo al servidor

yo lo hice como dice aqui:
http://www.roseindia.net/struts/stru...dandsave.shtml

y va muy bien, ningun problema.
  #3 (permalink)  
Antiguo 29/08/2007, 11:43
 
Fecha de Ingreso: junio-2004
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Pregunta Re: Subir un archivo al servidor

Gracias, me funciona, pero para mi mismo pc, si lo quiero tirar a otro pc q no este en red no me funciona.

gracias
  #4 (permalink)  
Antiguo 30/08/2007, 04:14
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Pregunta Re: Subir un archivo al servidor

Cita:
Iniciado por jesusito Ver Mensaje
si lo quiero tirar a otro pc q no este en red no me funciona.
¿Lo intentas hacer desde un pc sin red?
  #5 (permalink)  
Antiguo 30/08/2007, 07:23
 
Fecha de Ingreso: junio-2004
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Subir un archivo al servidor

A lo q me refiero es q el otro pc no este en el mismo segmento de red, ejemplo el pc que va a subir el archivo esta en chile y el servidor esta en argentina, los dos tienen internet pero no tienen conectividad.

gracias
  #6 (permalink)  
Antiguo 30/08/2007, 09:11
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Subir un archivo al servidor

Cita:
Iniciado por cris_maco Ver Mensaje
yo lo hice como dice aqui:
http://www.roseindia.net/struts/stru...dandsave.shtml

y va muy bien, ningun problema.

Estoy siguiendo este ejemplo, y me da un error que no se muy bien como solucionar:

java.io.FileNotFoundException: E:\PROGRAMAS\jboss-4.0.5.GA\server\default\.\tmp\deploy\tmp13691Inmob iliariaAdmin-exp.war\upload\para repasar.pdf (El sistema no puede hallar la ruta especificada)

Creo que es por la ruta que saca de

String filePath=getServlet().getServletContext().getRealP ath("/")+"upload";

¿Puede alguien ayudarme un poco?

En caso de tuviera que poner la carpeta upload dentro de la carpeta del proyecto, ¿donde habría de hacerlo?

Agradecida.
  #7 (permalink)  
Antiguo 30/08/2007, 09:37
 
Fecha de Ingreso: junio-2004
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Subir un archivo al servidor

Existe es path en tu pc?
  #8 (permalink)  
Antiguo 30/08/2007, 09:49
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Subir un archivo al servidor

Existe este:

E:\PROGRAMAS\jboss-4.0.5.GA\server\default\.\tmp\deploy\tmp13691Inmob iliariaAdmin-exp.war\

pero aun así, intentando poner el archivo aqui no lo consigo, no lo crea en ningún sitio

Hay que hacer algo más??
  #9 (permalink)  
Antiguo 30/08/2007, 09:52
 
Fecha de Ingreso: junio-2004
Mensajes: 170
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Subir un archivo al servidor

prueba con:

String filePath= "E:\PROGRAMAS\jboss-4.0.5.GA\server\default\.\tmp\deploy\tmp13691Inmob iliariaAdmin-exp.war\"
  #10 (permalink)  
Antiguo 30/08/2007, 09:58
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Subir un archivo al servidor

No va. A ti te funcionaba?? porque empiezo a pensar que tengo algo mal en algun sitio.

Cambiaste algo de ese ejemplo??
  #11 (permalink)  
Antiguo 30/08/2007, 16:05
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: Subir un archivo al servidor

Yo lo tengo asi y funciona bien:

List myFiles = (List)myForm.getTheFile();
int i;
for(i=0;i<myFiles.size();i++)
{
if(myFiles.get(i)!=null){
FormFile myFile = (FormFile)myFiles.get(i);
String contentType = myFile.getContentType();
fileName = myFile.getFileName();
byte [] fileData = myFile.getFileData();
String filePath = getServlet().getServletContext().getRealPath("/") + "fotos";

if(!fileName.equals("")){
System.out.println("Server path:" + filePath);
System.out.println(fileData);
File fileToCreate = new File(filePath, fileName);

if(!fileToCreate.exists()){
FileOutputStream fileOutStream = new FileOutputStream (fileToCreate);
fileOutStream.write(myFile.getFileData());
fileOutStream.flush();
fileOutStream.close();

}
}
}

request.setAttribute("fileName", fileName);

esto va, y la ruta es la del servidor que es donde se va a guardar el archivo que has subido, lo que no me acuerdo era cuando lo probe con la carpera upload era si no existia esa carpeta te la creaba o no, yo para eso escogi una carpeta que tenia creada(fotos) y lo guardo ahi y va bien. Lo tengo todo dentro de un for, porque lo hice para subir mas de un archivo. Creo que os puse bien la ruta donde estaba el ejemplo, porque hay uno de solo subir ficheros y no los guardaba.
  #12 (permalink)  
Antiguo 31/08/2007, 00:54
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Subir un archivo al servidor

Cita:
Iniciado por cris_maco Ver Mensaje
lo que no me acuerdo era cuando lo probe con la carpera upload era si no existia esa carpeta te la creaba o no, yo para eso escogi una carpeta que tenia creada(fotos) y lo guardo ahi y va bien
Pero exactamente donde creaste la carpeta?? dentro del .war?? Porque yo probé a ponerla en el directorio WebContent de mi proyecto y no funciona.

Siento darles tanto mal pero no entiendo muy bien porque no funciona.

Saludos y por supuesto gracias.
  #13 (permalink)  
Antiguo 31/08/2007, 01:40
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Subir un archivo al servidor

Bueno, parece que voy consiguiendo algo.

Código:
FormFile foto=((FotoForm)actionForm).getFoto();
			
			String contentType=foto.getContentType();
			String fileName=foto.getFileName();
			byte[] fileData=foto.getFileData();
			
			String filePath=getServlet().getServletContext().getRealPath("/")+"IMAGES";
			
			if (!fileName.equals("")){
				System.out.println("Server path: "+filePath);
				File fileToCreate=new File(filePath, fileName);
				if(!fileToCreate.exists())	{
					FileOutputStream fileOutStream=new FileOutputStream(fileToCreate);
					fileOutStream.write(foto.getFileData());
					fileOutStream.flush();
					fileOutStream.close();
				}
			}
Ahora, aparentemente funciona, pero si voy a la ruta indicada por: filePath no aparece el archivo que supuestamente ha subido.
  #14 (permalink)  
Antiguo 31/08/2007, 02:58
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: Subir un archivo al servidor

se te sube al servidor, en mi caso a Tomcat, a la carpeta webapps, donde esta el proyecto. sino pon tu la ruta que quieras, pero acuerdate de doblar el / porque si no lo puede tomar como un caracter de escape

Espero que te funcione :)
  #15 (permalink)  
Antiguo 31/08/2007, 08:09
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: Subir un archivo al servidor

Ya lo he solucionado. Muchas gracias.

Una pregunta más: para eliminar alguno de los archivos subidos, es posible hacerlo desde programación?? en caso de que así fuera, cómo??

Gracias por adelantado
  #16 (permalink)  
Antiguo 01/09/2007, 03:18
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: Subir un archivo al servidor

yo cuando quiero eliminar alguno lo hago asi, con la clase File:

File fichero = new File(ruta);
fichero.delete();
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:49.