From 1ba140ddea64dd4dda8bc5dc4a1d54465c801a67 Mon Sep 17 00:00:00 2001 From: eastargh Date: Thu, 3 Sep 2026 10:09:29 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=ED=8C=90=20=EC=B2=A8?= =?UTF-8?q?=EB=B6=80=ED=8C=8C=EC=9D=BC=20=EB=B2=84=EA=B7=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsp/onl/apim/portalnotice/portalNoticeManDetail.jsp | 4 ++++ .../rms/onl/apim/portalnotice/PortalNoticeManService.java | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/WebContent/jsp/onl/apim/portalnotice/portalNoticeManDetail.jsp b/WebContent/jsp/onl/apim/portalnotice/portalNoticeManDetail.jsp index 1267845..4fcfa37 100644 --- a/WebContent/jsp/onl/apim/portalnotice/portalNoticeManDetail.jsp +++ b/WebContent/jsp/onl/apim/portalnotice/portalNoticeManDetail.jsp @@ -530,6 +530,10 @@ if (confirm("<%= localeMessage.getString("common.checkSave")%>") != true) return; var formData = new FormData($("#ajaxForm")[0]); + // Summernote 그림 다이얼로그의 내부 파일 input(name="files")이 #ajaxForm 안에 있어 + // 선택한 이미지가 지워지지 않고 남아 있으면 여기서 함께 딸려 온다. + // 본 화면은 첨부파일 기능을 쓰지 않으므로 항상 제거한다. + formData.delete("files"); formData.set("useYn", $("#useYn").is(":checked") ? "Y" : "N"); formData.set("fixYn", $("#fixYn").is(":checked") ? "Y" : "N"); formData.set("noticeDetail", $('#contents').summernote('code')); diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/portalnotice/PortalNoticeManService.java b/src/main/java/com/eactive/eai/rms/onl/apim/portalnotice/PortalNoticeManService.java index aa7d10e..e9b44b1 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/portalnotice/PortalNoticeManService.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/portalnotice/PortalNoticeManService.java @@ -60,6 +60,9 @@ public class PortalNoticeManService extends BaseService { private static final String MANUAL_TITLE_KEYWORD = "장애"; private String decodeString(String value) { + if (value == null) { + return null; + } if (ContainerUtil.get() == ContainerUtil.TOMCAT) { try { return new String(value.getBytes("euc-kr"), StandardCharsets.UTF_8); @@ -433,7 +436,8 @@ public class PortalNoticeManService extends BaseService { MultipartFile file = portalNoticeUI.getFiles(); if (file != null && !file.isEmpty()) { // 새로운 파일이 업로드된 경우에만 처리 - String decodedFileName = decodeString(portalNoticeUI.getFileName()); + String fileName = StringUtils.defaultIfBlank(portalNoticeUI.getFileName(), file.getOriginalFilename()); + String decodedFileName = decodeString(fileName); FileTypeContext.setFileType("notice"); FileInfo fileInfo = fileService.createOrUpdateSingleFile(portalNotice.getFileId(), file, decodedFileName, true);