From 2b7a25ff829787b05879cd6e3c77c496f6791a31 Mon Sep 17 00:00:00 2001 From: chaen-ing Date: Sun, 7 Sep 2025 16:53:01 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Debug:=20=EC=9A=94=EC=95=BD=EC=8B=9C=20svg?= =?UTF-8?q?=20=EC=98=88=EC=99=B8=20=EC=B2=98=EB=A6=AC=20(#169)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/SimplificationService.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/adoonge/seedzip/simplification/service/SimplificationService.java b/src/main/java/com/adoonge/seedzip/simplification/service/SimplificationService.java index dc927a7..43744c4 100644 --- a/src/main/java/com/adoonge/seedzip/simplification/service/SimplificationService.java +++ b/src/main/java/com/adoonge/seedzip/simplification/service/SimplificationService.java @@ -1,5 +1,7 @@ package com.adoonge.seedzip.simplification.service; +import static com.adoonge.seedzip.global.exception.ErrorCode.*; + import com.adoonge.seedzip.global.service.S3Service; import com.adoonge.seedzip.global.exception.ErrorCode; import com.adoonge.seedzip.global.exception.SeedzipException; @@ -77,7 +79,21 @@ public SimplificationInfoResponse requestImageAnalysis(MultipartFile file) { } catch (IOException e) { throw SeedzipException.from(ErrorCode.INTERNAL_SEVER_ERROR); } - String imageUrl = "data:image/jpeg;base64," + base64Image; + + // MIME 타입 확인 + String contentType = file.getContentType(); + if (contentType == null) { + throw SeedzipException.from(SEED_TYPE_NOT_SUPPORTED); + } + + // jpg/jpeg/png만 허용 + if (!(contentType.equalsIgnoreCase("image/jpeg") || + contentType.equalsIgnoreCase("image/jpg") || + contentType.equalsIgnoreCase("image/png"))) { + throw SeedzipException.from(SEED_TYPE_NOT_SUPPORTED);} + + String imageUrl = "data:" + contentType + ";base64," + base64Image; + ChatGPTRequest request = ChatGPTRequest.createImageRequest(apiModel, 500, imageUrl); ChatGPTResponse chatGPTResponse = template.postForObject(apiUrl, request, ChatGPTResponse.class); From b214ac92898c1c16c7a25db50860f8d35c290a8d Mon Sep 17 00:00:00 2001 From: chaen-ing Date: Mon, 8 Sep 2025 22:11:14 +0900 Subject: [PATCH 2/2] =?UTF-8?q?Debug:=20svg=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20(#169)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/adoonge/seedzip/seed/service/SeedService.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/com/adoonge/seedzip/seed/service/SeedService.java b/src/main/java/com/adoonge/seedzip/seed/service/SeedService.java index d467af7..5e75b24 100644 --- a/src/main/java/com/adoonge/seedzip/seed/service/SeedService.java +++ b/src/main/java/com/adoonge/seedzip/seed/service/SeedService.java @@ -33,6 +33,7 @@ import com.adoonge.seedzip.tag.domain.type.DefaultTagType; import com.adoonge.seedzip.tag.repository.TagRepository; import com.adoonge.seedzip.tag.repository.UsedDefaultTagRepository; +import com.amazonaws.services.dynamodbv2.xspec.S; import java.time.LocalDate; import java.time.temporal.ChronoUnit; @@ -164,6 +165,16 @@ public SeedResponse.SeedInfoSimple uploadSeed(SeedRequest seedRequest, Member me @Transactional public void uploadFiles(Long seedId, List files) { + for(MultipartFile file : files){ + String contentType = file.getContentType(); + if (contentType == null || + !(contentType.equalsIgnoreCase("image/png") || + contentType.equalsIgnoreCase("image/jpg") || + contentType.equalsIgnoreCase("image/jpeg"))) { + throw SeedzipException.from(ErrorCode.SEED_TYPE_NOT_SUPPORTED); + } + } + Seed seed = seedRepository.findById(seedId).orElseThrow( () -> SeedzipException.from(ErrorCode.SEED_NOT_FOUND) );