zoukankan      html  css  js  c++  java
  • java 下载文件功能代码例子

    public static void down(HttpServletRequest request,
       HttpServletResponse response) throws Exception {
      
      
      String name="aaa.*";//文件名
      String uploadPath = UploadFileHelper.getRepositoryPath()+"//";//文件来源
        
       String filePath = name;
      String fileName = name;
      
      
      if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0){
       fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");//firefox浏览器
      }else {
           if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){
            fileName = URLEncoder.encode(fileName, "UTF-8");//IE浏览器
           }
      }  
      response.setContentType("text/plain");
      response.setHeader("Location",fileName);
      response.reset();
      response.setHeader("Cache-Control", "max-age=0" );
      response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
     BufferedInputStream bis = null;
      BufferedOutputStream bos = null;
      OutputStream fos = null;
      InputStream fis = null;
      filePath = uploadPath + filePath;
      fis = new FileInputStream(filePath);
         bis = new BufferedInputStream(fis);
         fos = response.getOutputStream();
         bos = new BufferedOutputStream(fos);

    int bytesRead = 0;
         byte[] buffer = new byte[5 * 1024];
         while ((bytesRead = bis.read(buffer)) != -1) {
             bos.write(buffer, 0, bytesRead);// 将文件发送到客户端
         }
         bos.close();
         bis.close();
         fos.close();
         fis.close();
        
     }

  • 相关阅读:
    设计模式
    【C/C++多线程编程之六】pthread相互排斥量
    J2EE的13个规范之(三) Servlet简单介绍
    .NET实现单点登录研究过程总结--【SSO】
    hdu4081 次小生成树变形
    eclipse代码提示框背景色改动
    Linux SO_KEEPALIVE属性,心跳
    [实战]MVC5+EF6+MySql企业网盘实战(20)——Bootstrap Paginator
    [工具]图片等比例压缩工具
    [工具类]视频音频格式转换
  • 原文地址:https://www.cnblogs.com/sand-tiny/p/4284450.html
Copyright © 2011-2022 走看看