| 注册
请输入搜索内容

热门搜索

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

Java从网上下载文件的代码

DownLoadUtil.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;      }  }

调用 DownLoadUtil.java;
public ActionForward downLoadExcelModel(ActionMapping actionMapping,     ActionForm actionForm, HttpServletRequest request,     HttpServletResponse response) throws Exception {    String busType = request.getParameter("busType");    String path = request.getSession().getServletContext().getRealPath(      "/resources");    String name = null;            String fileName = null;    //服务器上文件名      fileName = "xxxl.xls";      name = "xxxx.xls";    }    String filePath = path + System.getProperty("file.separator") + fileName;    DownLoadUtil.downLoadFile(name,filePath, response, "xls");    return null;   }