org.springframework.web.multipart.support.MissingServletRequestPartException

    사진을 서버에 전송하는 프로그램을 개발하는 도중 아래와 같은 에러가 발생하였다.

     

    org.springframework.web.multipart.support.MissingServletRequestPartException


    에러 로그

    WARN 7268 --- [nio-8080-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present]

     

    Ajax 펑션

    function uploadPhoto() {
        var file = $('input[name="file"]').get(0);
        var formData = new FormData();
        formData.append('file', file);
    
        $.ajax({
            type: 'POST',
            url: './profile/update',
            data: formData,
            enctype: 'multipart/form-data',
            processData: false,
            contentType: false,
            cache: false,
            error : function(error) {
                alert("Error!");
            },
            success : function(data) {
                if(data.status == 'success') {
                    alert('success');
                }
            }
        });
    }

     

    Controller

    public @ResponseBody Map<String, Object> insert(@RequestPart("file") MultipartFile file) {
    }

    에러 원인은, file 객체값이 맞지 않는 것으로 MultipartFile 형태의 값이 아니라서 나는 에러로 유추하고 있음.

     

    해결방법

    Ajax 부분을 아래와 같이 수정

    // 이 부분을
    var file = $('input[name="file"]').get(0);
    
    // 이렇게 수정
    var file = $('input[name="file"]').get(0).files[0];

     

    반응형

    댓글

    Designed by JB FACTORY