Spring MVC 下载文件

流程

  1. 首先 请求方式 使用GET.
  2. 设置Http header。
  3. 将生成的内容转换成byte,浏览器就会根据header里面的信息,将文件保存起来.

代码

/**
     * 导出用户
     *
     * @return
     * @throws IOException
     */
    @RequestMapping(value = "exportAudiences", method = RequestMethod.GET) //请求路径
    public ResponseEntity<byte[]> exportAudiences() throws IOException {
        List<Audience> audiences = audienceService.getAllAudiences(); // 获取需要输出的信息
        ByteArrayOutputStream output = new ByteArrayOutputStream(); //用于转换byte

        HSSFWorkbook wb = ExcelUtil.exportAudience(audiences); //生成一个excel
        if (wb != null) {
            wb.write(output);
        }
        byte[] bytes = output.toByteArray();
        HttpHeaders httpHeaders = new HttpHeaders(); //设置header
        httpHeaders.add("Accept-Ranges", "bytes");
        httpHeaders.add("Content-Length", bytes.length + "");
        httpHeaders.add("Content-disposition", "attachment; filename=allAudience.xls");
        httpHeaders.add("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        ResponseEntity<byte[]> responseEntity = new ResponseEntity<byte[]>(bytes, httpHeaders, HttpStatus.CREATED);
        return responseEntity;
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,306评论 19 139
  • 1、第一种情况下载时如果文件名存在中文则需要进行编码String downloadFileName = new S...
    Kx_阅读 5,576评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,896评论 18 399
  • 明朝建文帝朱允炆,一位宅心仁厚的君王,一个不善于借古鉴今的学生,尤其是对待历史遗留问题上,许是每上历史课时神游了罢...
    北归燕阅读 4,251评论 3 4
  • 拿起书刚要看,想着冲杯咖啡吧,捧着咖啡想听音乐,打开音乐,想打个电话,还没拨号,想网上买个东西,网上逛了一圈,想发...
    俗然阅读 4,903评论 0 4