복붙노트

[SPRING] MultipartException : 현재 요청이 다중 요청이 아닙니다.

SPRING

MultipartException : 현재 요청이 다중 요청이 아닙니다.

나는 파일을 업로드하는 데 안성맞춤 인 컨트롤러를 만들려고 노력하고있다. 나는 이것을 보았다. 이 컨트롤러를 만들었습니다 :

@RestController
public class MaterialController {

    @RequestMapping(value="/upload", method= RequestMethod.POST)
    public String handleFileUpload(
            @RequestParam("file") MultipartFile file){
        String name = "test11";
        if (!file.isEmpty()) {
            try {
                byte[] bytes = file.getBytes();
                BufferedOutputStream stream =
                        new BufferedOutputStream(new FileOutputStream(new File(name + "-uploaded")));
                stream.write(bytes);
                stream.close();
                return "You successfully uploaded " + name + " into " + name + "-uploaded !";
            } catch (Exception e) {
                return "You failed to upload " + name + " => " + e.getMessage();
            }
        } else {
            return "You failed to upload " + name + " because the file was empty.";
        }
    }
}

그런 다음 우편 발송자를 사용하여 pdf를 보냈습니다.

그러나 서버가 다음 오류로 인해 충돌합니다.

.MultipartException: Current request is not a multipart request

다시 나는 이것을 발견하고 bean.xml 파일을 추가했다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    </bean>
</beans>

불행하게도, 그것은 여전히 ​​같은 오류로 불평합니다.

해결법

  1. ==============================

    1.멀티 파트 요청에 우편 게시자를 사용하는 경우 머리글에 사용자 지정 Content-Type을 지정하지 마십시오. 따라서 우편 배달부의 헤더 탭은 비어 있어야합니다. 우편 배달부는 양식 데이터 경계를 결정합니다. 우편 배달부의 본문 탭에서 양식 데이터를 선택하고 파일 유형을 선택해야합니다. https://github.com/postmanlabs/postman-app-support/issues/576에서 관련 토론을 찾을 수 있습니다.

    멀티 파트 요청에 우편 게시자를 사용하는 경우 머리글에 사용자 지정 Content-Type을 지정하지 마십시오. 따라서 우편 배달부의 헤더 탭은 비어 있어야합니다. 우편 배달부는 양식 데이터 경계를 결정합니다. 우편 배달부의 본문 탭에서 양식 데이터를 선택하고 파일 유형을 선택해야합니다. https://github.com/postmanlabs/postman-app-support/issues/576에서 관련 토론을 찾을 수 있습니다.

  2. ==============================

    2.서버에 대한 요청이 다중 부분 요청이 아닌 것 같습니다. 기본적으로 클라이언트 측 양식을 수정해야합니다. 예 :

    서버에 대한 요청이 다중 부분 요청이 아닌 것 같습니다. 기본적으로 클라이언트 측 양식을 수정해야합니다. 예 :

    <form action="..." method="post" enctype="multipart/form-data">
      <input type="file" name="file" />
    </form>
    

    희망이 도움이됩니다.

  3. ==============================

    3.나는 또한 multipart에 대한 우편 배달부와 같은 문제에 직면했다. 다음 단계를 수행하여 문제를 해결했습니다.

    나는 또한 multipart에 대한 우편 배달부와 같은 문제에 직면했다. 다음 단계를 수행하여 문제를 해결했습니다.

    그것은 나를 위해 일했습니다.

  4. ==============================

    4.application.properties에 다음을 추가하십시오.

    application.properties에 다음을 추가하십시오.

    spring.servlet.multipart.max-file-size=128KB
    spring.servlet.multipart.max-request-size=128KB
    spring.http.multipart.enabled=false
    

    html 형식에서는 : enctype = "multipart / form-data"가 필요합니다. 예 :

    <form method="POST" enctype="multipart/form-data" action="/">
    

    희망이 도움이!

  5. ==============================

    5.ARC (고급 휴식 클라이언트) - 작동하도록 아래 명시하십시오. Content-Type multipart / form-data (헤더 이름과 헤더 값) 이렇게하면 양식 데이터를 키와 값으로 추가 할 수 있습니다. 이제 REST 사양에 따라 필드 이름을 지정하고 파일 선택기에서 업로드 할 파일을 선택할 수 있습니다.

    ARC (고급 휴식 클라이언트) - 작동하도록 아래 명시하십시오. Content-Type multipart / form-data (헤더 이름과 헤더 값) 이렇게하면 양식 데이터를 키와 값으로 추가 할 수 있습니다. 이제 REST 사양에 따라 필드 이름을 지정하고 파일 선택기에서 업로드 할 파일을 선택할 수 있습니다.

  6. from https://stackoverflow.com/questions/42013087/multipartexception-current-request-is-not-a-multipart-request by cc-by-sa and MIT license