Mega Code Archive

 
Categories / Java / Servlets
 

Send PDF file

import java.io.BufferedInputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class UrlServlet extends HttpServlet {   public void doGet(HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException {     //get the 'file' parameter     String fileName = (String) request.getParameter("file");     if (fileName == null || fileName.equals(""))       throw new ServletException(           "Invalid or non-existent file parameter in UrlServlet servlet.");     if (fileName.indexOf(".pdf") == -1)       fileName = fileName + ".pdf";     URL pdfDir = null;     URLConnection urlConn = null;     ServletOutputStream stream = null;     BufferedInputStream buf = null;     try {       pdfDir = new URL(getServletContext().getInitParameter(           "remote-pdf-dir")           + fileName);     } catch (MalformedURLException mue) {       throw new ServletException(mue.getMessage());     }     try {       stream = response.getOutputStream();       //set response headers       response.setContentType("application/pdf");       response.addHeader("Content-Disposition", "attachment; filename="           + fileName);       urlConn = pdfDir.openConnection();       response.setContentLength((int) urlConn.getContentLength());       buf = new BufferedInputStream(urlConn.getInputStream());       int readBytes = 0;       //read from the file; write to the ServletOutputStream       while ((readBytes = buf.read()) != -1)         stream.write(readBytes);     } catch (IOException ioe) {       throw new ServletException(ioe.getMessage());     } finally {       if (stream != null)         stream.close();       if (buf != null)         buf.close();     }   }   public void doPost(HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException {     doGet(request, response);   } }