desImgs
, @RequestPart(value = "RepresentationImgs", required = false) List 위와 같이 받고 싶은데 그냥 쓰면 오류남. 아래와 같이 빈 등록해주고. 파일 io를 위한 의존성도 추가해주기.→ 나같은 경우에는 이것만으로도 되긴했음. 프론트엔드에서 파일 보내는 코드
@RestController
public ResponseEntity<?> register(@Valid @RequestPart(value = "ProductRegisterDto") ProductRegisterDto productRegisterDto
, @RequestPart(value = "RepImg", required = true) MultipartFile repImg
, @RequestPart(value = "DescriptionImgs", required = false) List<MultipartFile> desImgs
, @RequestPart(value = "RepresentationImgs", required = false) List<MultipartFile> represenImgs
/*, Model model */) {
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
import org.springframework.stereotype.Component;
import java.lang.reflect.Type;
@Component
public class MultipartJackson2HttpMessageConverter extends AbstractJackson2HttpMessageConverter {
/**
* "Content-Type: multipart/form-data" 헤더를 지원하는 HTTP 요청 변환기
*/
public MultipartJackson2HttpMessageConverter(ObjectMapper objectMapper) {
super(objectMapper, MediaType.APPLICATION_OCTET_STREAM);
}
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
return false;
}
@Override
public boolean canWrite(Type type, Class<?> clazz, MediaType mediaType) {
return false;
}
@Override
protected boolean canWrite(MediaType mediaType) {
return false;
}
}
<!-- common fileupload -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>