Hello everybody,

I have to send a file to the response for the browser
to show a save/open file dialog box to the user, so
he/she can download it and save in in his/her local
file system. As expected the file is stored in a
specific directory in the file system of the server.

What I did was to call this method within a
commandLink component:

public String downloadDB(){
      FacesContext context =
FacesContext.getCurrentInstance();
     
      HttpServletRequest request = (
HttpServletRequest )
                                
context.getExternalContext().getRequest(  );
      HttpServletResponse response = 
         ( HttpServletResponse )
context.getExternalContext().getResponse();
      
      String filePath = null;
      int read = 0;
      byte[] bytes = new byte[1024];
      
      filePath = getMyDBPath();
 
      response.setContentType("application/pdf");
      FileInputStream fis = null;
      OutputStream os = null;
      
      try {
         fis = new FileInputStream(new
File(filePath));
         os = response.getOutputStream();
         while((read = fis.read(bytes)) != -1){
            os.write(bytes,0,read);
         }
         os.flush();
         os.close();
      }
      catch ( FileNotFoundException e1 ) {
         logger.error(e1);
         logger.info(e1.getMessage());
         request.setAttribute("errors", "File Not
Found.");
      }
      catch ( IOException ioe ) {
         logger.error(ioe);
         logger.info(ioe.getMessage());
         request.setAttribute("errors", "Error reading
file.");
      }
      return "";
   }



After the user clicks on the commandLink, the page I'm
working on, gets refreshed and at the top of it
appears the text of the file I tried to download. This
is not the expected behaviour, what should I do?

thanks a lot,
Johnny

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam
¡gratis! 
Regístrate ya - http://correo.yahoo.es 

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! 
Regístrate ya - http://correo.yahoo.es 

Reply via email to