package com.jcommerce.gwt.server; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FileDownloadServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 2055943540120089839L; protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("application/x-msdownload");// x-msdownload resp.setHeader("Content-disposition", "attachment; filename=" + req.getParameter("fileName")); write(req, resp); } private void write(HttpServletRequest req, HttpServletResponse resp) { OutputStream oup = null; FileInputStream fis = null; try { oup = resp.getOutputStream(); fis = new FileInputStream( ".." + File.separator + req.getParameter("fileName")); int buf = -1; while ((buf = fis.read()) != -1) { oup.write(buf); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if(oup!=null) oup.flush(); if(fis!=null) fis.close(); } catch (IOException e) { e.printStackTrace(); } } } }