java中使用springmvc实现下载文件

下载文件具体实现代码:

public class TestDownload{
  public HttpServletRequest request;
  public HttpServletResponse response;

  //下载文件
  public static void downLoadFile(){
    String downloadFileName = "下载后文件名_TEST.xlsx";

       FileInputStream inputStream = null;
       OutputStream outputStream = null;
       File file = null;
       try {
           file = new File(getFilePath(request));
           if (!file.exists()) {
              log.info("日报文件不存在,请重新导出数据");
           } else {
              inputStream = new FileInputStream(file);
              response.setContentType("application/txt;charset=utf-8");
              response.setHeader("Content-Disposition",
                     "attachment;Filename=" + new String(downloadFileName.getBytes("GB2312"), "ISO8859-1"));// 设置下载后文件的名字、防止中文乱码

              outputStream = response.getOutputStream();
              byte[] bytes = new byte[1024];
              int len = 0;
              while ((len = inputStream.read(bytes)) > 0) {
                  outputStream.write(bytes, 0, len);
              }
           }
      } catch (IOException e) {
             log.error("文件下载异常:", e);
         } finally {
             try {
                if (inputStream != null) {
                    inputStream.close();
                }
                if (outputStream != null) {
                    outputStream.close();
                }
             } catch (IOException e) {
                log.error("下载日报中关闭流异常 :{} ", e);
             }
         }
  }
//获取服务器文件路径
  private String getFilePath(HttpServletRequest request) {
       String fileName = "服务器文件.xlsx";
       String projectPath = request.getSession().getServletContext().getRealPath("/downloadfile/tset");
       return projectPath + "/" + fileName;
    }
}

 

 

posted @ 2019-03-12 20:20  九零大叔芭蕉  阅读(1649)  评论(0编辑  收藏  举报