| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
ew45
10年前发布

下载网络文件的Java代码

import java.io.BufferedInputStream;  import java.io.BufferedOutputStream;  import java.io.File;  import java.io.FileInputStream;    import javax.servlet.http.HttpServletResponse;    import org.apache.log4j.Logger;    public class DownLoadUtil {      private static Logger logger = Logger.getLogger(DownLoadUtil.class);      /**       * 下载文件       * @param name 用户下载的文件名(*****.***)       * @param filePath 文件路径       * @param response        * @param fileType 文件类型       * @return       * @throws Exception       */      public static boolean downLoadFile(String name,String filePath,              HttpServletResponse response, String fileType)              throws Exception {          logger.info("start invoke downLoadFile,[filePath:"+filePath+" , fileType:"+fileType+"]");          File file = new File(filePath);          //设置文件类型          if("pdf".equals(fileType)){              response.setContentType("application/pdf");          }else if("xls".equals(fileType)){              response.setContentType("application/msexcel");          }else if("doc".equals(fileType)){              response.setContentType("application/msword");          }          response.setHeader("Content-Disposition", "attachment;filename=\""                  + new String(name.getBytes("GB2312"), "ISO8859-1") + "\"");          //response.setHeader("Content-Disposition", "attachment;filename=\""+ URLEncoder.encode(name, "UTF-8")+ "\"");          response.setContentLength((int) file.length());          byte[] buffer = new byte[4096];// 缓冲区          BufferedOutputStream output = null;          BufferedInputStream input = null;          try {              output = new BufferedOutputStream(response.getOutputStream());              input = new BufferedInputStream(new FileInputStream(file));              int n = -1;              while ((n = input.read(buffer, 0, 4096)) > -1) {                  output.write(buffer, 0, n);              }              output.flush();              response.flushBuffer();          } catch (Exception e) {              logger.error("exception when invoke downLoadFile",e);              throw e;          } finally {              if (input != null)                  input.close();              if (output != null)                  output.close();          }          logger.info("end invoke downLoadFile!");          return true;      }  }