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("下载结果失败");
        }
    }
相关推荐
爱上妖精的尾巴12 小时前
5-26 WPS JS宏数组元素添加删除应用
开发语言·前端·javascript·wps·js宏
是谁眉眼12 小时前
wpsapi
前端·javascript·html
谅望者12 小时前
Flexbox vs Grid:先学哪一个?CSS 布局完全指南(附可视化示例)
前端·css·html·css3·css布局·css flexbox·css grid
Bianca42712 小时前
Excel正则表达式.获取字符
正则表达式·excel
老华带你飞12 小时前
商城推荐系统|基于SprinBoot+vue的商城推荐系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·商城推荐系统
JS.Huang13 小时前
【JavaScript】Pointer Events 与移动端交互
前端·javascript
一 乐13 小时前
物业管理系统|小区物业管理|基于SprinBoot+vue的小区物业管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
H_HX12613 小时前
vue3 - 图片放大镜效果实现
前端·vue.js·vue3·vueuse·图片放大镜
yolo_Yang13 小时前
【Spring Boot】Spring Boot解决循环依赖
java·spring boot·后端
yinuo14 小时前
Git Submodule 与 Subtree 全方位对比:使用方式与场景选择
前端