Обработка MultipartFile с помощью @RequestBody в Spring Boot - PullRequest
0 голосов
/ 11 февраля 2020

Сценарий: загрузить файл (ы) в angular с некоторыми другими данными и записать их в контроллер REST. Моя модель в angular выглядит следующим образом.

export class MetaData{
  files: FormData;
  docTypeId: number;
  metadata: any;
  employeeID: number;
}

Теперь я хочу сделать POST для моей конечной точки REST и записать детали следующим образом.

@PostMapping("/upload")
    public StatusDTO uploadDocument(@RequestBody MetaDataDTO metadata){
}

Мой класс MetaDataDTO выглядит следующим образом - (1)

public class MetaDataDTO {
    private List<MultipartFile> files;
    private Integer docTypeId;
    private List<Map<String, String>> metaData;
    private Integer employeeID;
}

Но эта конечная точка не вызывается службой angular.
ps Я могу изменить свою конечную точку REST как следующим образом.

    @PostMapping("/upload")
        public StatusDTO uploadDocument(@RequestParam("files") List<MultipartFile> files, @RequestParam("metaData") String rawMetaData){
// from GSON convert rawMetaData to MetaDataDTO class. 
}

Теперь мой модифицированный MetaDataDTO - (2) следующим образом.

public class MetaDataDTO {
 private Integer docTypeId;
 private List<Map<String, String>> metaData;
 private Integer employeeID;
}

Но теперь мне не хватает моего отображения, которое определено в классе MetaDataDTO - (1).

1 Ответ

0 голосов
/ 12 февраля 2020

Решена проблема с отправкой массива base64 для файла, а не с конвертацией файла с помощью formdata.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...