springboot把 EXCEL 文件以流的形式返回给前端

1.controller层

    @GetMapping(ReviewUrls.API_DOWNLOAD_REVIEW_RESULT)
    public Response<Void> downloadReviewResult(HttpServletResponse response) {
        resultService.downloadReviewResult(response);
        return Response.ok();
    }

2.service层

    public void downloadReviewResult(HttpServletResponse response) {
        /*
         逻辑:
         1. 以文件流的形式返回
         */
        // [1] 以文件流的形式返回
        String filePath = "test.xslx";
        try (FileInputStream inputStream = new FileInputStream(filePath);
             ServletOutputStream outputStream = response.getOutputStream();
        ) {
            // 设置请求头
            response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
            response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }
            outputStream.flush();
        } catch (Exception e) {
            throw new RuntimeException("下载结果失败");
        }
    }

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 16:00:04       51 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 16:00:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 16:00:04       44 阅读
  4. Python语言-面向对象

    2024-07-12 16:00:04       55 阅读

热门阅读

  1. Github 2024-07-09 Python开源项目日报 Top10

    2024-07-12 16:00:04       15 阅读
  2. 2.HTML学习

    2024-07-12 16:00:04       18 阅读
  3. “存算分离“和“湖仓一体“

    2024-07-12 16:00:04       15 阅读
  4. 对数据采集、数据存储和数据处理流程

    2024-07-12 16:00:04       16 阅读