这个下载很简单,很实用,上方是Spring注解,只要这个模块代码就行了,是从我项目中摘出来的,很独立
/** -----------------------文件下载---------------------------------------------- */ /* 招飞初检文件下载 本案例只要得到路径就可以了 */ @RequestMapping(params = "method=InitDownLoad", method = RequestMethod.GET) public void InitDownLoad(HttpServletRequest request,HttpServletResponse response) { String downLoadPath=URLDecoder.decode(request.getParameter("downLoadPath")); //得到文件路径 String fileName=downLoadPath.split("/")[downLoadPath.split("/").length-1]; response.reset(); //response.reset() 来清除首部的空白行 response.setContentType("application/octet-stream"); response.setCharacterEncoding("UTF-8"); File file=new File(downLoadPath); //放入文件流 if(file.exists()){ InputStream in=null; //输入流 BufferedInputStream bis=null; OutputStream out=null; //输出流 BufferedOutputStream bos=null; try { in=new FileInputStream(file); bis=new BufferedInputStream(in); response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));//设置头文件 可参照 http://blog.csdn.net/fanyuna/article/details/5568089 byte[] data=new byte[1024]; int bytes=0; out=response.getOutputStream(); bos=new BufferedOutputStream(out); while((bytes=bis.read(data, 0, data.length))!=-1){ bos.write(data,0,bytes); //写出文件流 } bos.flush(); } catch (Exception e) { e.printStackTrace(); }finally{ try{ bos.close(); out.close(); bis.close(); in.close(); }catch(Exception e){ e.printStackTrace(); } } } }