Команда cURL для загрузки файла не загружает файл - PullRequest
1 голос
/ 17 мая 2019

Итак, у меня есть Java API, и я использую команды cURL для отправки запросов GET / POST в мой API.Я использую Springboot в своем Java API.Моя команда cURL выглядит следующим образом:

curl -X POST \
  https://localhost:8443/abc/code/v \
  -H 'Content-Type: multipart/form-data' \
  -F file=@/path/to/file.txt

, а мой метод Java Springboot, который получает этот запрос, выглядит следующим образом:

@RequestMapping(method = RequestMethod.POST, value = "/{code}/{v}")
    public ResponseEntity<Object> uploadTemplate( //
            @ApiParam(value = "code desc") //
            @PathVariable final String code, //
            @ApiParam(value = "v desc") //
            @PathVariable final String v, //
            @RequestParam("file") MultipartFile file
    ) throws IOException {
        //log.info("received [url: /tabc/" + code + "/" + v + ", method: POST");
        System.out.println("file: "+ file.getName());
}

, который печатает "file: file"

Не похоже, что file.txt загружен на сервер вообще!Что я делаю неправильно?Я посмотрел на Google, но похоже, что я делаю почти все.

1 Ответ

1 голос
/ 17 мая 2019

MultipartFile.getName возвращает имя параметра в многочастной форме.

Чтобы получить байты MultipartFile, используйте file.getBytes()

И если ваш MultipartFile представляет собой текстовый файл, вы можете использовать этот служебный метод для получения списка строк в этом текстовом файле:

    public List<String> read(MultipartFile file) throws IOException {
        InputStreamReader in = new InputStreamReader(file.getInputStream());
        try (BufferedReader reader = new BufferedReader(in)) {
            return reader.lines().collect(Collectors.toList());
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...