From 6441bfbbba0268dfe0ec6d69e10e6187e5f0a7e4 Mon Sep 17 00:00:00 2001 From: xupei Date: Thu, 28 Aug 2025 19:22:55 +0800 Subject: [PATCH] =?UTF-8?q?BUGFIX:=20=E5=AD=90=E8=B4=A6=E5=8F=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E4=B8=BAexcel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/common/security/filter/AuthenticationFilter.java | 7 ++++++- .../java/com/ai/da/service/impl/AccountServiceImpl.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ai/da/common/security/filter/AuthenticationFilter.java b/src/main/java/com/ai/da/common/security/filter/AuthenticationFilter.java index 612e8aac..c3058fa5 100644 --- a/src/main/java/com/ai/da/common/security/filter/AuthenticationFilter.java +++ b/src/main/java/com/ai/da/common/security/filter/AuthenticationFilter.java @@ -74,7 +74,12 @@ public class AuthenticationFilter extends OncePerRequestFilter { wrappedRequest = new MultiReadHttpServletRequest(httpServletRequest); wrappedResponse = new MultiReadHttpServletResponse(httpServletResponse); extracted(wrappedRequest); - filterChain.doFilter(wrappedRequest, wrappedResponse); + // excel导出使用原始response,不对响应做包装 + if (requestURI.equals("/api/account/exportAccountsToExcel")) { + filterChain.doFilter(httpServletRequest, httpServletResponse); // 不包装 + } else { + filterChain.doFilter(wrappedRequest, wrappedResponse); + } } } catch (Exception e) { SecurityContextHolder.clearContext(); diff --git a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java index 1da495f2..9adee153 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -3401,7 +3401,7 @@ public class AccountServiceImpl extends ServiceImpl impl // 5. 设置响应头 response.reset(); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); response.setHeader("Access-Control-Allow-Origin", "http://192.168.31.118:3000"); // 6. 输出流写入