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. 输出流写入