복붙노트

[SPRING] HTTP 상태 가져 오기 400 - 필요한 MultipartFile 매개 변수 'file'이 (가) 봄에 없습니다.

SPRING

HTTP 상태 가져 오기 400 - 필요한 MultipartFile 매개 변수 'file'이 (가) 봄에 없습니다.

봄을 사용하여 파일을 업로드하려고합니다. 아래는 내 코드입니다. 어떻게 작업하고 있습니까? 하지만 그것을 사용하려고하면 나는이 반응을 얻고있다.

HTTP 상태 400 - 필수 MultipartFile 매개 변수 'file'이 없습니다.

나는 그 오류가 무엇인지 알지 못한다.

테스트를 위해 고급 휴식 클라이언트를 사용 중이며 첨부 파일로 파일을 업로드하고 있습니다.

내 Java 코드 :

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

해결법

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

    1.봄이 필요합니다.

    봄이 필요합니다.

    bean은 파일 업로드를 처리합니다.

    응용 프로그램 컨텍스트 파일에이 Bean을 등록해야합니다.

    Content-Type도 유효해야합니다. 귀하의 경우에 enctype = "multipart / form-data"

    EDIT1

    빈 속성에 업로드 및 메모리 크기를 지정할 수 있습니다.

      <bean id="multipartResolver"
            class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- max upload size in bytes -->
            <property name="maxUploadSize" value="20971520" /> <!-- 20MB -->
    
            <!-- max size of file in memory (in bytes) -->
            <property name="maxInMemorySize" value="1048576" /> <!-- 1MB -->
    
        </bean>
    
  2. ==============================

    2.당신이 미리 휴식 클라이언트에서 파일을 선택하면, 오른쪽에 입력 상자가 있습니다, 매개 변수의 입력 상자 이름에 쓰기, 귀하의 경우 매개 변수의 이름은 파일입니다

    당신이 미리 휴식 클라이언트에서 파일을 선택하면, 오른쪽에 입력 상자가 있습니다, 매개 변수의 입력 상자 이름에 쓰기, 귀하의 경우 매개 변수의 이름은 파일입니다

    컨트롤러 @RequestParam ( "file")에 여기에 정의 된 매개 변수 이름

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

    3.Krajee 부트 스트랩 입력 파일 예제 ( "https://github.com/kartik-v/bootstrap-fileinput"에서 이미 빈 ID를 잘 구성했을 때 매개 변수 "파일"의 입력 상자 이름에 쓴 후 ").

    Krajee 부트 스트랩 입력 파일 예제 ( "https://github.com/kartik-v/bootstrap-fileinput"에서 이미 빈 ID를 잘 구성했을 때 매개 변수 "파일"의 입력 상자 이름에 쓴 후 ").

  4. from https://stackoverflow.com/questions/32990908/geting-http-status-400-required-multipartfile-parameter-file-is-not-present by cc-by-sa and MIT license