desImgs , @RequestPart(value = "RepresentationImgs", required = false) List represenImgs /*, Model model */) {"> desImgs , @RequestPart(value = "RepresentationImgs", required = false) List represenImgs /*, Model model */) {"> desImgs , @RequestPart(value = "RepresentationImgs", required = false) List represenImgs /*, Model model */) {">

@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;
        }
}

파일 io를 위한 의존성도 추가해주기.→ 나같은 경우에는 이것만으로도 되긴했음.

        <!-- common fileupload -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>

프론트엔드에서 파일 보내는 코드

  • html
  • js