style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Ventana de descarga

Buen dia;

Señores tengo algun tiempo tratando de adentrarme a la descarga de archivos que manejo en el servidor, estuve tratando con el framework de icefaces pero ni siquiera el objeto me aparece, en fin eh googleado con jsp y encuentro al final del dai este tipo de codigos pero no me aparese el menu de descarga, el cod encontrado es:

HttpServletResponse response;
 String nFile = "Inventario del la linea 402.pdf";             
    FileInputStream archivo = new FileInputStream("C:/"+nFile);
    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="+nFile);    
   
    ServletOutputStream ouputStream = response.getOutputStream();
    ouputStream.write(datos);
    ouputStream.flush();
    ouputStream.close();
       
}
catch(Exception e)
{
    e.printStackTrace();
}  

Eh estado intentando de muchas maneras pero nose como que ni siquiera puedo sacar la vendita ventana de descarga que con el codigo que mostre seria solo:

    response.setContentType("application/octet-stream");
    response.setHeader("Content-Disposition","attachment;filename="+nFile);

En todos los foros o temas que encuentro comentan que eso e slo necesario para mandar llamar a la ventana pero no puedo, podran ayudarme

Miguel V.
Chihuahua.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Marce

En tú código html tienes una

En tú código html tienes una liga que manda invocar a este Servlet o a ese código en JSP? o de que manera estás invocando a esta funcionalidad del servidor?

Completa tu codigo

Despueds de response.setHeader("Content-Disposition","attachment;filename="+nFile); agrega response.setContentLength(archivo.available());

 


Editado
Bueno, aqui hay un código completo
Imagen de cororo

hola; Muchas gracias por

hola;
Muchas gracias por las respuestas, la verdad no eh encontrado ni como hacerlo en javascript ni encontre tutoriales de como hacerlo, aller estuve buscando en ingles pero llego a lo mismo.

Javadabadoo, dejame pruevo lo que me comentas y te respondo que paso, muchas gracias por la contrubucion.

Miguel V.
Chihuahua

Imagen de cororo

hola; Javadabadoo fijate

hola;
Javadabadoo fijate que probe agregando a mi codigo lo que comentas, pero antes de llegar a la parte que agregaste ahora me salio el sig error.

ava.lang.NullPointerException
        at enlineatabla.sapitof(enlineatabla.java:408)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.el.parser.AstValue.invoke(AstValue.java:191)
        at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
        at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
        at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:148)
        at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
        at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
        at javax.faces.component.UICommand.broadcast(UICommand.java:300)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
        at java.lang.Thread.run(Thread.java:619)

En la linea enlineatabla.java:408

response.setContentType("application/pdf");  // es para PDF

Ya estuvbe googleando y al pareser no deve de marcar error pero ami sime marca :S, sabran que pasa ??

Miguel V.
Chihuahua.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">