A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区


                                                                                                                                                                                                                                                     /**     * 下载导入应用模板     *     * @return     */    @ResponseBody    @RequestMapping(method = RequestMethod.GET)    public Response getApplicationTemplate(HttpServletRequest req, HttpServletResponse res) {        try {            //获取要下载的模板名称            String fileName = "ApplicationImportTemplate.xlsx";            //设置要下载的文件的名称            res.setHeader("Content-disposition", "attachment;fileName=" + fileName);            //通知客服文件的MIME类型            res.setContentType("application/vnd.ms-excel;charset=UTF-8");            //获取文件的路径            String filePath = getClass().getResource("/template/" + fileName).getPath();            FileInputStream input = new FileInputStream(filePath);            OutputStream out = res.getOutputStream();            byte[] b = new byte[2048];            int len;            while ((len = input.read(b)) != -1) {                out.write(b, 0, len);            }            //修正 Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作簿的来源,请点击"是"            res.setHeader("Content-Length", String.valueOf(input.getChannel().size()));            input.close();            return Response.ok("应用导入模板下载完成");        } catch (Exception ex) {            log.error("getApplicationTemplate :", ex);            return Response.ok("应用导入模板下载失败!");        }    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
需要下载文件位置:

如果在HttpServletResponse Header中不指定Content-Length,那么在下载完成打开后,会有如下提示:


【转载】https://blog.csdn.net/jiankunkin ... 798?utm_source=copy

1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马