From 0536a7fd8901972890ed0db36fa2ffacaf6fd2a3 Mon Sep 17 00:00:00 2001 From: "sungjin.choi" Date: Mon, 20 Jul 2026 16:25:23 +0900 Subject: [PATCH] =?UTF-8?q?fix=20-=20=ED=8C=8C=EC=9D=BC=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FileSyncController.java | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/main/java/company/specialsource/controller/FileSyncController.java b/src/main/java/company/specialsource/controller/FileSyncController.java index c3425f0..c7e362b 100644 --- a/src/main/java/company/specialsource/controller/FileSyncController.java +++ b/src/main/java/company/specialsource/controller/FileSyncController.java @@ -13,36 +13,30 @@ import java.io.InputStream; @RestController public class FileSyncController { - // 🟒 @RequestParam을 μΆ”κ°€ν•˜μ—¬ λ§ˆμ΄ν¬λ‘œλ“œλ‘œμ΄λ“œκ°€ λ³΄λ‚΄λŠ” 'filename' 값을 μ „λ‹¬λ°›μŠ΅λ‹ˆλ‹€. @PostMapping("/api/sync/upload") public ResponseEntity uploadFile( HttpServletRequest request, @RequestParam(value = "filename", required = false) String originalFileName) { try { - // 1. μ €μž₯ν•  파일λͺ… κ²°μ • 둜직 - String fileName; - if (originalFileName != null && !originalFileName.isEmpty()) { - // λ§ˆμ΄ν¬λ‘œλ“œλ‘œμ΄λ“œκ°€ 이름을 보내쀀 경우 κ·Έ 이름(ν™•μž₯자 포함)을 κ·ΈλŒ€λ‘œ μ‚¬μš© - fileName = originalFileName; - } else { - // 이름을 μ°Ύμ§€ λͺ»ν•œ 경우의 μ˜ˆλΉ„μš© 이름 (ν™•μž₯자λ₯Ό μ•Œ 수 μ—†μœΌλ―€λ‘œ .dat둜 μž„μ‹œ μ§€μ •) - fileName = "unknown_file_" + System.currentTimeMillis() + ".dat"; + // 1. 🟒 파일λͺ… 검증: μ›λž˜ λͺ…칭이 λΉ„μ–΄μžˆκ±°λ‚˜ λˆ„λ½λ˜μ—ˆλ‹€λ©΄ μš”μ²­μ„ κ±°λΆ€ν•©λ‹ˆλ‹€. + if (originalFileName == null || originalFileName.trim().isEmpty()) { + return ResponseEntity.badRequest().body("Error: μ›λž˜ 파일λͺ…이 μ „λ‹¬λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€."); } - // 2. 도컀 λ‚΄λΆ€μ˜ μƒλŒ€ 경둜둜 폴더 μ§€μ • - String uploadDirPath = "./upload/"; + // 2. μœ μ €λ‹˜μ΄ μ§€μ •ν•˜μ‹  λ‚˜μŠ€μ˜ μ‹€μ œ μ ˆλŒ€ 경둜 κ³ μ • + String uploadDirPath = "/volume1/docker/upload_dir/"; File uploadDir = new File(uploadDirPath); - // 3. 폴더가 μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ μžλ™μœΌλ‘œ 생성 + // 디렉토리가 μ—†μœΌλ©΄ μ•ˆμ „ν•˜κ²Œ μžλ™ 생성 if (!uploadDir.exists()) { uploadDir.mkdirs(); } - // 4. κ²°μ •λœ 파일λͺ…μœΌλ‘œ μ΅œμ’… μ €μž₯ 경둜 생성 - File targetFile = new File(uploadDir, fileName); + // 3. 🟒 파일λͺ… 가곡 없이 μ›λž˜ λͺ…μΉ­ κ·ΈλŒ€λ‘œ μ €μž₯ 파일 객체 μ •μ˜ + File targetFile = new File(uploadDir, originalFileName); - // 5. 파일 데이터 μˆ˜μ‹  및 μ“°κΈ° + // 4. λ°”μ΄λ„ˆλ¦¬ μŠ€νŠΈλ¦Όμ„ 읽어 파일 μž‘μ„± μ§„ν–‰ try (InputStream is = request.getInputStream(); FileOutputStream fos = new FileOutputStream(targetFile)) { @@ -53,8 +47,8 @@ public class FileSyncController { } } - System.out.println("βœ… 파일 μ—…λ‘œλ“œ 성곡: " + targetFile.getAbsolutePath()); - return ResponseEntity.ok("Upload Success: " + fileName); + System.out.println("βœ… μ›λž˜ λͺ…μΉ­ κ·ΈλŒ€λ‘œ μ—…λ‘œλ“œ μ™„λ£Œ: " + targetFile.getAbsolutePath()); + return ResponseEntity.ok("Upload Success: " + originalFileName); } catch (Exception e) { e.printStackTrace();