클라이언트에서 JSON 타입의 데이터와 멀티파트 형식 파일을 동시에 전달 받는 방법을 기록한다.
Controller에서 JSON타입의 데이터를 vo로 받고 멀티파트 형식 파일을 받아서 로그만 찍어보겠다.
controller
package study.lsyrestapitest1.controller.api;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import study.lsyrestapitest1.domain.vo.UserVo;
@RestController
@Slf4j
@RequestMapping(value = "/v1/test1")
public class TestController {
@PostMapping(value = "")
public void create(@RequestPart(value = "file")MultipartFile file, @RequestPart(value = "userInfo") UserVo userVo, Model model) {
log.info("userInfo => {}, fileInfo => {}", userVo, file.getOriginalFilename());
}
}
다른 방법도 있겠지만 vo와 MultipartFile 형식의 파일을 @RequestPart로 선언한다.
사용자 객체와 파일 원본이름을 로그로 찍었다.
이제 postman에서 호출을 한 뒤 제대로 값이 찍히는지 보겠다.

Body > form-data(multipart 타입을 보내야 되기 때문)에 key에 컨트롤러에서 parameter로 받는 이름을 적는다.
key 우측에서 Text와 File을 선택할 수 있다.
파일은 "file"로 선언했고 사용자 데이터는 "userInfo"로 선언했다.

다른 이름으로 선언하면 MissingServletRequestPartException: Required request part 'userInfo' is not present가 보일거다.
userInfo의 CONTENT TYPE은 JSON이니까 application/json로 선언 후 아래처럼 JSON 형식으로 작성한다.
{
"userName": "thor",
"userEmail": "thor@naver.com"
}
application/json 선언 안하면 HttpMediaTypeNotSupportedException이 발생한다.
이제 준비는 끝났고 호출 하면 아래처럼 서버에 로그가 찍힌다.

내가 원하는 값이 제대로 찍혔다.
이제 내가 원하는데로 저 값들을 요리하면 된다.

📌 이 글은 개인 학습 목적으로 작성한 기록이며, 내용에 오류가 있을 수 있습니다.
잘못된 부분이 있다면 댓글로 알려주세요!
[springBoot + mybatis] 개발환경 세팅(테스트 영상 & 소스코드 포함)
스프링부트로 개발 시 mybatis를 정말 간편하게 세팅할 수 있다. 😄역시나 시간이 지나면 기억을 못하기 때문에 미래의 내가 보기 위해 이곳에 기록한다.예시를 위해서 테이블을 하나 생성하고
yaga.tistory.com
[spring boot/mybatis] 쿼리 로그 정렬 및 기타(feat. log4jdbc)
목차 mybatis log4j 쿼리 로그 정렬 및 기타 😄 mybatis와 log4j를 처음 사용할 때는 아래처럼 쿼리가 일렬로 나오고 parameter값이 "?"로 표시된다. 짧은 쿼리면 상관 없지만 긴 쿼리의 경우에는 Parameters로
yaga.tistory.com
[AWS] EC2 + Docker + RDS로 쉽게 배우는 서버 및 DB 구축 가이드 🚀💻📦
이 포스팅은 AWS 회원가입부터 EC2/RDS 인스턴스 생성 및 웹서버와 연동한 기본 가이드입니다.빠른 시일내에 AWS 회원가입부터 아키텍처 3까지 구축하는 라이브 영상 포스팅 예정입니다.2025년 2월15
yaga.tistory.com
'💻 it > development' 카테고리의 다른 글
| [devTool] postman으로 파일 전송 테스트 (0) | 2025.12.10 |
|---|---|
| [java] PKIX path building failed 해결방법(HTTPS 통신 에러) (1) | 2025.12.10 |
| [java] list의 null 체크(ObjectUtils.isEmpty()) (0) | 2025.12.10 |
| INSERT/UPDATE template(feat. 엑셀 CONCATENATE) (0) | 2025.12.10 |
| [thyemeleaf] select option값 list loop (0) | 2025.12.10 |
댓글