• 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;
        }
    }

     

  • 相关阅读:
    [BZOJ4480] JSOI2013 快乐的jyy
    [BZOJ4755] JSOI2016 扭动的回文串
    [BZOJ4754] JSOI2016 独特的树叶
    [BZOJ5179] JSOI2011 任务调度
    [BZOJ4320] SHOI2006 Homework
    [AT2300] Snuke Line
    [洛谷P3974] TJOI2015 组合数学
    [CF331E] Biologist
    [洛谷P4249] WC2007 剪刀石头布
    【BZOJ4548】小奇的糖果
  • 原文地址:https://www.cnblogs.com/whx20100101/p/10519381.html
Copyright © 2020-2023  润新知