본문 바로가기
오류 모음

no matching editors or conversion strategy found

by sgyeong 2025. 10. 10.

 

DTO에는 타입이 String으로 되어있다. 하지만 HTML form에는 input type="file"로 되어있다. 

이때 브라우저가 보내는 데이터는 문자열(String)이 아니라 MultipartFile 객체로 들어온다.

그래서 DTO에 요청 데이터를 바인딩하려다 실패하였다.

 

오류가 발생한 이유는 실제 폼에서 들어온 타입은 MultipartFile이었으나, DTO의 해당 타입이 String이었기 때문이다. 

실제 들어온 타입 DTO에서 기대한 타입
MultipartFile String

 

 

스프링은 MultipartFile → String 변환 방법을 알지 못한다. 

그렇기 때문에 스프링은 String 필드에 넣을 수 없어서 에러를 내는 것이다.

 

 

 

해결 방법

 

DTO의 해당 필드 타입을 MultipartFile로 수정한다. 

 

+ DB에 저장하기 위한 Entity에서는 파일 경로를 저장하기 위해 타입을  String으로 한다.

 

(* 파일 업로드를 하기 위해선 HTML form에 enctype="multipart/form-data" 가 반드시 필요하다.)