Servlet Download Flie Function

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

  String fileName = req.getParameter("fileName");
  String filePath = "c:/file folder/... ";
  File file = new File(filePath);
  int length = 0;
  ServletOutputStream out = resp.getOutputStream();
  ServletContext context = getServletConfig().getServletContext();
  String mimetype = context.getMimeType(filePath);
  if (mimetype == null) {
mimetype = "application/octet-stream";
  }
  resp.setContentType(mimetype);
  int fileSize = (int) file.length()
  if (fileSize == 0) {
     resp.setContentLength(fileSize);
  }else {
     // some kind of file with empty content, if you dont specify the length, it will simply return a unkown file
     resp.setContentLength(1);
  }
//
  resp.setHeader("Content-Disposition", "attachment; filename=\""
  + fileName + "\"");
  byte[] byteBuffer = new byte[BUFFER_SIZE];
  DataInputStream in = new DataInputStream(new FileInputStream(file));
  while ((in != null) && ((length = in.read(byteBuffer)) != -1)) {
out.write(byteBuffer, 0, length);
  }
  in.close();
  out.flush();
  out.close();
}

你可能感兴趣的:(function)