Весна не возвращается JSON в полном объеме - PullRequest
0 голосов
/ 04 августа 2020

Я использую весеннюю загрузку и @PostMapping, пытаясь вернуть POJO, содержащий 1 файл Multipart и некоторую строку. Когда я смотрю на Postman, я вижу только половину объекта Multipart. Размер файла 3кб. Я не получаю ошибок. Когда я возвращаю составную переменную null, в ответ отображаются другие переменные в JSON, поэтому они не пусты. Как я могу вернуть все JSON?

public class foo{
    public MultipartFile dataFile;
    
    public String project;
    
    public Boolean extract;

    ... getter - setter - constructor
}

Я отправляю это как

@PostMapping
public foo route(@RequestParam("dataFile") MultipartFile dataFile, ... ) {

 ...
    return fooObject;
}

Ответ

{
    "dataFile": {
        "name": "dataFile",
        "bytes":"MIKCAQYJKoZIhvcNAQcCoIKB8jCCge4CA... (half of the file)

1 Ответ

1 голос
/ 04 августа 2020

Как я и думал, MultipartFile используется для загрузки объекта, а не для его загрузки. Как указано в Javado c:

Представление загруженного файла, полученного в составном запросе.

Это означает, что он отлично подходит для загрузки, но не подходит для загрузки.

Самый простой способ (и самый простой) - это изменить MultipartFile на byte[] и отправить его клиенту.

Вот пример:

public Foo getFile(MultipartFile multipartFile) {
    byte[] bytes = multipartFile.getBytes();
    return new Foo(bytes, "project");
}
...