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

servlet de upload de imagen

Estas en el tema de servlet de upload de imagen en el foro de Java en Foros del Web. Hola. Tengo un servlet para el upload de una imagen para un aplicación web sobre tomcat 5.5. La aplicación sube bien el fichero, pero no ...
  #1 (permalink)  
Antiguo 14/04/2008, 09:44
 
Fecha de Ingreso: agosto-2005
Mensajes: 43
Antigüedad: 18 años, 8 meses
Puntos: 0
servlet de upload de imagen

Hola.

Tengo un servlet para el upload de una imagen para un aplicación web sobre tomcat 5.5. La aplicación sube bien el fichero, pero no donde yo deseo.Me explico.

Yo quiero que me suba el fichero a /WEB-INF/comunes/gfx; pero al directorio de trabajo donde tengo el código (D:\eclipsej2ee\Struts1\WebContent\WEB-INF\comunes\gfx), pero siempre me lo sube a D:\eclipseJ2EE\.metadata\.plugins\org.eclipse.wst. server.core\tmp1\Struts1\WEB-INF\comunes\gfx

No sé que hacer.

Parte del código que tengo es este:

try {
InputStream stream = myFile.getInputStream();
String directorio = request.getServletPath();
ServletConfig scfg = servlet.getServletConfig();
ServletContext sctx = scfg.getServletContext();
String dir2 = sctx.getRealPath("/WEB-INF/comunes/gfx");
OutputStream bos = new FileOutputStream(dir2 +"/"+ fileName);
int temp = 0;
byte[] buffer = new byte[8192];
while ((temp = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, temp);
}
bos.close();
data = "el archivo se ha subido";
stream.close();
} catch (FileNotFoundException fnfe) {
System.out.println("Fallo al subir archivo!!!");
fnfe.printStackTrace();
}



No sé que tengo que hacer, por cierto trabajo en Eclipse. Si como directorio pongo C:\ va de perlas.

Toda ayuda será bienvenida

Gracias.
  #2 (permalink)  
Antiguo 22/04/2008, 02:37
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Re: servlet de upload de imagen

No sé si lo habrás solucionado ya, pero yo probaría con lo siguiente:

String root = getServletContext().getRealPath("/");
String filePath = root + "WEB-INF\\comunes\\gfx\\";
OutputStream bos = new FileOutputStream(root + fileName);

Creo que el error que tienes es que mezclas direcciones de la aplicación con direcciones físicas reales y por eso no te lo crea dónde quieres. En la aplicación no existe la ruta "/WEB-INF/comunes/gfx", ya que la carpeta WEB-INF es totalmente invisible si accedemos desde localhost. Así que para tema de archivos tienes que tratar con ruta física.

Espero que te sirva y que no llegue tarde, hasta pronto.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 23:15.