Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/01/2014, 13:14
Avatar de nup_
nup_
 
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 6 meses
Puntos: 32
Respuesta: Url a archivos de servidor desde el jsp

Hola:

El problema está en q tratas de cargar el archivo completo en memoria antes de enviarlo al cliente:

Código Java:
Ver original
  1. byte[] datos = new byte[longitud];
  2. archivo.read(datos);

si el archivo es más grande q la memoria q tienes disponible es evidente q el programa va a dar un error:
Código Java:
Ver original 

La solución es crear un buffer intermedio y hacer la copia de poco a poco.
Código Java:
Ver original
  1. FileInputStream input = new FileInputStream(........)
  2. ServletOutputStream ouput = response.getOutputStream();
  3. byte[] buf = new byte[1024];
  4. int bytesRead;
  5. while ((bytesRead = input.read(buf)) > 0) {
  6. output.write(buf, 0, bytesRead);
  7. }

de esta forma solo tienes 1024 bytes en memoria en cada momento.

slds;

nup_


PD: Por cierto, quizás quieras ver esta página:
http://es.wikipedia.org/wiki/Directory_traversal
a no ser q tengas algún mecanismo de seguridad q no se muestre aquí, estás exponiendo todo tu sistema de ficheros a cualquier atacante q tenga acceso a tu página.
Para algunas soluciones:
https://www.securecoding.cert.org/co...alidating+them
http://stackoverflow.com/questions/2...aversal-attack

Última edición por nup_; 10/01/2014 a las 13:34