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

1.controller层

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

2.service层

java 复制代码
    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("下载结果失败");
        }
    }
相关推荐
skyey3 小时前
页面加载时,深色模式闪白的问题解决
前端
IT_陈寒3 小时前
Java 并行流把我坑惨了,这6小时加班值了
前端·人工智能·后端
anOnion12 小时前
构建无障碍组件之Menu Button pattern
前端·html·交互设计
用户479492835691513 小时前
claude Fable用不了?把Gpt 5.5pro接到你的claude code里
前端·后端
zhangxingchao15 小时前
Kotlin常用的Flow 操作符整理
前端
IT_陈寒17 小时前
React的useState居然还有这种坑?我差点删库跑路
前端·人工智能·后端
Pedantic18 小时前
SwiftUI 手势笔记
前端·后端
橙子家18 小时前
浏览器缓存之【结构化数据库与缓存】: IndexedDB、Cache storage 和 Storage buckets
前端
user205855615181318 小时前
X6 中边悬浮置顶,规避 `mouseleave` 事件丢失问题
前端
李明卫杭州18 小时前
CSS aspect-ratio 属性完全指南
前端