400 BAD Ошибка запроса на HttpMethod.PUT - Загрузка файла во второй раз - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть метод запроса PUT в контроллере, куда я загружаю zip-файл, и этот метод принимает его в качестве входного потока и обрабатывает поток.Хорошо работает с размерами файлов в килобайтах.Теперь я загрузил zip-файл размером 10 Мб, и он отлично работает с первого раза.Во второй раз он не загружается, и я получаю ошибку запроса BAD.Когда я перезапускаю сервис, он работает нормально в первый раз, и во второй раз я получаю ту же ошибку BAD Request 400.Горох советую

@RequestMapping(path = “/upload/{fileName}”, method = PUT,
    consumes = "multipart/form-data", produces = "application/json; charset=UTF-8")

 public void upload(@PathVariable(“fileName”) String fileName,
            @RequestBody MultipartFile[] multipartFile) throws IOException{ 

        //inputstream is processed here

    }

1 Ответ

0 голосов
/ 11 декабря 2018

Для загрузки файла в весенней загрузке я предпочитаю такой подход:

@RequestMapping(value = "/upload", method = RequestMethod.PUT) // Or POST
@ResponseStatus(HttpStatus.OK)
public void upload(@RequestParam("file") MultipartFile file) {

    System.out.println(String.format("File name %s", file.getName()));
    System.out.println(String.format("File original name %s", file.getOriginalFilename()));
    System.out.println(String.format("File size %s", file.getSize()));

    //do whatever you want with the MultipartFile
    file.getInputStream();
}

Настройка загрузки нескольких файлов в Spring Boot

Наиболее часто используемые свойства:

  1. spring.http.multipart.file-size-threshold: Порог, после которого файлы записываются на диск.Поддерживает МБ или КБ в качестве суффиксов для указания размера в мегабайтах или килобайтах

  2. spring.http.multipart.location: расположение временных файлов

  3. spring.http.multipart.max-file-size: Максимальный размер файла, который поддерживает загрузка;также поддерживает суффиксы MB или KB; по умолчанию 1MB

  4. spring.http.multipart.max-request-size: максимальный размер всего запроса;также поддерживает суффиксы MB или KB

Вы, конечно, можете изменить эти настройки в своем application.properties of yml.

В вашем случае я предпочитаю перейти наоставьте api, и вы проверите ошибку стека, чтобы увидеть, что это за ошибка.

...