Spring

[Spring] MultipartFile, Dto 한번에 입력 받기 | swagger | S3

DAHLIA CHOI 2023. 2. 14. 15:18

이미지랑 dto랑 같이 입력 받고 싶은데 postman에서는 multipartFile은 이미지로 dto는 json으로 따로 입력이 가능하지만 스웨거에서 실행할때는 한 번에 안뜬다....😭 

그래서 @RequestBody대신에 @ModelAttribute를 사용해서 입력 받기!

 

 

Controller

    @PostMapping(value = "/write")
    public BaseResponse<BaseResponseStatus> uploadPosting(@RequestPart MultipartFile image,
                                                          @ModelAttribute PostingDto postingDto) throws IOException {
        try {
            postingService.uploadPosting(image, createPostingDto);
            return new BaseResponse<>(BaseResponseStatus.SUCCESS);
        } catch (BaseException exception) {
            return new BaseResponse<>(exception.getStatus());
        }
    }

 

Dto

import lombok.*;
import java.sql.Date;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CreatePostingDto {
    private String title;
    private String content;
    private Date recordDate;
    private CreatePlaceDto createPlaceDto;
    private int visibilityStatusCode;
}

 

Swagger로 본 모습 (일부화면)

이렇게 dto랑 multiparFile을 같이 입력 받을 수 있다 ㅎㅎ

 

s3에도 잘 올라간다!!