23 March 2013

JAVA SERVLET CODE TO DOWNLOAD A .txt file

 import java.io.File;  
 import java.io.FileInputStream;  
 import java.io.IOException;  
 import javax.servlet.ServletException;  
 import javax.servlet.http.HttpServlet;  
 import javax.servlet.http.HttpServletRequest;  
 import javax.servlet.http.HttpServletResponse;  
 /**  
  *  
  * @author Niraj Chauhan  
  */  
 public class DownloadFile extends HttpServlet {  
   protected synchronized void processRequest(  
       HttpServletRequest request,  
       HttpServletResponse response)  
   throws ServletException, IOException {  
     String filePath=request.getParameter("filePath");  
     System.out.println("filePath = "+filePath);  
     String fileName="file1";  
     if(filePath == null)return;  
     if(filePath.contains("/")){  
       String[] b = filePath.split("/");  
       fileName=b[b.length-1];  
     }          
     response.setHeader("Content-Length", String.valueOf(new File(filePath).length()));      
     response.setContentType( "application/octet-stream" );  
     //response.setContentType("application/vnd.ms-excel");  
         // System.out.println(".......response.getContentType() = "+response.getContentType());  
         response.setHeader("Content-Disposition","attachment; filename=\""+fileName+"\"");  
     FileInputStream inputStream = null;  
     try  
     {  
     inputStream = new FileInputStream(filePath);  
     System.out.println(" INPUTSTREAM CREATED");  
     byte[] buffer = new byte[1024];  
     int bytesRead = 0;  
     do{  
         bytesRead = inputStream.read(buffer, 0, buffer.length);  
         response.getOutputStream().write(buffer);  
     }while (bytesRead == buffer.length);  
     System.out.println(" END OF WHILE");  
     response.getOutputStream().flush();  
     System.out.println(" FLUSHING DONE");  
     }catch(Exception e){  
        System.out.println("Exception in DownloadFile.java ="+e);  
     }finally{  
     if(inputStream != null)  
         inputStream.close();  
     System.out.println(" INPUT STREAM CLOSED");  
     }  
   }  
   //   
   /**  
    * Handles the HTTP GET method.  
    * @param request servlet request  
    * @param response servlet response  
    * @throws ServletException if a servlet-specific error occurs  
    * @throws IOException if an I/O error occurs  
    */  
   @Override  
   protected void doGet(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     processRequest(request, response);  
   }  
   /**  
    * Handles the HTTP POST method.  
    * @param request servlet request  
    * @param response servlet response  
    * @throws ServletException if a servlet-specific error occurs  
    * @throws IOException if an I/O error occurs  
    */  
   @Override  
   protected void doPost(HttpServletRequest request, HttpServletResponse response)  
   throws ServletException, IOException {  
     processRequest(request, response);  
   }  
   /**  
    * Returns a short description of the servlet.  
    * @return a String containing servlet description  
    */  
   @Override  
   public String getServletInfo() {  
     return "Short description";  
   }//   
 }