Hola amigos, tengo una aplicación donde cargo archivos al servidor sin problema, y encontré una manera de tener un link para descargarlos, funciona bien, el código es:
Desde el link:
Código HTML:
<a onclick="window.open('salida.jsp?arch=<%=ficheros[x]%>');" href="#"><%=ficheros[x]%></a><br>
y el contenido de salida.jsp:
Código HTML:
try{
String nomFile = request.getParameter("arch");
FileInputStream archivo = new FileInputStream(request.getServletContext().getRealPath("/") + "archivos/"+nomFile);
int longitud = archivo.available();
byte[] datos = new byte[longitud];
archivo.read(datos);
archivo.close();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename="+nomFile);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(datos);
ouputStream.flush();
ouputStream.close();
}catch(Exception e){ e.printStackTrace(); }
Lo que hace salida.jsp es que me permite descargar mis archivos del servidor, pero si intento descargar un video muy pesado, me manda el error:
Código HTML:
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.OutOfMemoryError: Java heap space
y puedo entender el porque, intenté hacer una liga directa al video para descargarlo y no me funciona:
Código HTML:
<A href="<%=request.getServletContext().getRealPath("/") + "archivos/El video.mp4"%>">El video.mp4</A>
Pero no me funciona, alguien pudiera orientarme para hacerlo de otro modo? saludos y gracias de antemano!