From dd2b3e4da162cdf5824b0c04f41109b163e2453b Mon Sep 17 00:00:00 2001 From: ysCha Date: Mon, 30 Mar 2026 17:24:01 +0900 Subject: [PATCH] =?UTF-8?q?[1827]=EC=97=91=EC=85=80,pdf=20=EB=8B=A4?= =?UTF-8?q?=EC=9A=B4=EB=A1=9C=EB=93=9C=EC=8B=9C=20unknown=EC=9D=B4?= =?UTF-8?q?=EB=9D=BC=EA=B3=A0=20=EB=82=98=EC=98=B4=20-=20=EC=A0=84?= =?UTF-8?q?=EA=B0=81=EB=AC=B8=EC=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/interplug/qcast/util/ExcelUtil.java | 5 ++++- src/main/java/com/interplug/qcast/util/PdfUtil.java | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/interplug/qcast/util/ExcelUtil.java b/src/main/java/com/interplug/qcast/util/ExcelUtil.java index 44925563..007fa6b4 100644 --- a/src/main/java/com/interplug/qcast/util/ExcelUtil.java +++ b/src/main/java/com/interplug/qcast/util/ExcelUtil.java @@ -9,6 +9,8 @@ import java.beans.PropertyDescriptor; import java.io.*; import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.text.DecimalFormat; import java.util.*; import lombok.RequiredArgsConstructor; @@ -104,7 +106,8 @@ public class ExcelUtil { InputStream is = new BufferedInputStream(templateStream); - response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".xlsx\""); + String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8).replaceAll("\\+", "%20"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedFileName + ".xlsx\""); response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); try (OutputStream os = response.getOutputStream()) { diff --git a/src/main/java/com/interplug/qcast/util/PdfUtil.java b/src/main/java/com/interplug/qcast/util/PdfUtil.java index 2420dfd0..b1a01f7b 100644 --- a/src/main/java/com/interplug/qcast/util/PdfUtil.java +++ b/src/main/java/com/interplug/qcast/util/PdfUtil.java @@ -11,6 +11,7 @@ import com.itextpdf.kernel.utils.PdfMerger; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.*; +import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import lombok.RequiredArgsConstructor; @@ -81,7 +82,8 @@ public class PdfUtil { // 응답에 PDF 설정 response.setContentType("application/pdf"); - response.setHeader("Content-Disposition", "attachment; filename=\"" + pdfFileName + "\".pdf"); + String encodedFileName = URLEncoder.encode(pdfFileName, StandardCharsets.UTF_8).replaceAll("\\+", "%20"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedFileName + "\".pdf"); response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); try (java.io.OutputStream os = response.getOutputStream(); @@ -185,7 +187,8 @@ public class PdfUtil { // 응답에 PDF 설정 response.setContentType("application/pdf"); - response.setHeader("Content-Disposition", "attachment; filename=\"" + pdfFileName + "\".pdf"); + String encodedFileName = URLEncoder.encode(pdfFileName, StandardCharsets.UTF_8).replaceAll("\\+", "%20"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedFileName + "\".pdf"); response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); try (OutputStream os = response.getOutputStream(); -- 2.47.2