1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 doPost(request, response); 4 } 5 6 @SuppressWarnings("deprecation") 7 public void doPost(HttpServletRequest request, HttpServletResponse response) 8 throws ServletException, IOException { 9 10 11 String materia_url=request.getParameter("materia_url");12 String str=request.getRealPath("/")+materia_url;13 14 try {15 downLoad(str, response, false);16 } catch (Exception e) {17 18 e.printStackTrace();19 }20 21 }
public void downLoad(String filePath,HttpServletResponse response,boolean isOnLine) throws Exception{ File f = new File(filePath); if(!f.exists()){ response.sendError(404,"---------File not found!"); return; } BufferedInputStream br = new BufferedInputStream(new FileInputStream(f)); byte[] buf = new byte[1024]; int len = 0; response.reset(); //非常重要 if(isOnLine){ //在线打开方式 URL u = new URL("file:///"+filePath); response.setContentType(u.openConnection().getContentType()); response.setHeader("Content-Disposition", "inline; filename="+f.getName()); //文件名应该编码成UTF-8 }else{ //纯下载方式 response.setContentType("application/x-msdownload"); response.setHeader("Content-Disposition", "attachment; filename=" + f.getName()); } OutputStream out = response.getOutputStream(); while((len = br.read(buf)) >0) out.write(buf,0,len); br.close(); out.close(); }