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) ); 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);