본문 바로가기
프로젝트

[SuiteCare] SpringBoot에서 MultipartFile과 DTO 같이 받기

by 네모세모동동 2024. 3. 22.

저번에는 클라이인터쪽에서 MultipartFile과 JSON을 같이 보내주는 코드에 대해서 알아보았다.

 

 

[SuiteCare] MultipartFile과 JSON 같이 보내기

이력서를 등록하는 기능을 구현하는 중에 사진과 폼 데이터들을 같이 보내려는데 여러 차례의 삽질이 있었다. 클라이언트쪽 코드를 먼저 살펴보겠다. 내가 서버쪽으로 전송하려고 했던 body의

sun-note.tistory.com

 

 

이번에는 서버측에서 받는 방법에서 삽질했던 기록을 하고자한다.

 

[Controller.class 코드]

@PostMapping("/mate/resume")
public Integer uploadResume(HttpServletRequest request, @RequestPart("file") MultipartFile file,
                            		@RequestBody ResumeDTO resumeData) throws IOException {
    
    String login_id = (String) request.getAttribute("id");
    return mateResumeService.createResume(login_id, resumeData, file);
}

 

@RequestBody로 받아주니

 

Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required part 'file' is not present.]

 

위의 에러가 발생했다.

열심히 서치해보니 @RequestBody와 @RequestPart를 동시에 쓸 수 없다고 한다.

 

그래서 @RequestBody를 @RequestPart로 수정하니 해결되었다!😆

 

@PostMapping("/mate/resume")
public Integer uploadResume(HttpServletRequest request, @RequestPart("file") MultipartFile file,
                                      @RequestPart("resumeData") ResumeDTO resumeData) throws IOException {
    
    String login_id = (String) request.getAttribute("id");
    return mateResumeService.createResume(login_id, resumeData, file);
}

 

@RequestPart에 대한 부분은 조만간 블로그에 글을 올려볼 예정이다💪

 


[출처]