public static void downloadFile(HttpServletRequest request,HttpServletResponse response,String filepath){
         OutputStream out = null;
         FileInputStream in =null;
         try{
             File file = new File(filepath);
             //如果文件不存在
             if(!file.exists()){
                 return;
             }String f=File.separatorChar+"";
             filepath=filepath.replace("/", f);
             filepath=filepath.replace("\\", f);
             //处理文件名
             String realname = filepath.substring(filepath.indexOf("/")+1);
             //设置响应头,控制浏览器下载该文件
             response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
             //读取要下载的文件,保存到文件输入流
             in = new FileInputStream(filepath);
             //创建输出流
             out = response.getOutputStream();
             //创建缓冲区
             byte buffer[] = new byte[1024];
             int len = 0;
             //将输入流内容读取到缓冲区当中
             while((len=in.read(buffer))>0){
                 //输出内容到浏览器
                 out.write(buffer, 0, len);
             }
             colseDownloadFile( out, in);
         }catch(Exception e){
             colseDownloadFile( out, in);
             e.printStackTrace();
         }
     }public static void colseDownloadFile(OutputStream out,FileInputStream in){
         try{
             //关闭文件输入流
             if(in!=null)in.close();
             //关闭输出流
             if(out!=null)out.close();
         }catch(Exception e){
             e.printStackTrace();
         }
     }