Как получить многокомпонентный запрос от модифицированного API - PullRequest
0 голосов
/ 14 мая 2018

Я использую Spring-rest на стороне сервера.здесь я обрабатываю запрос от приложения для Android.но я не могу получить составные файлы, загруженные из приложения Android.Разработчики приложений для Android отправляют несколько файлов, как в виде списка.для получения этого запроса на стороне сервера я использовал приведенный ниже код.

 @RequestMapping(value="/multipleFilesUpload" , method=RequestMethod.POST, 
                consumes="multipart/form-data", produces="application/json")  
public ResponseEntity<?> mutipleFileUpload(HttpServletRequest req, 
                                           @RequestParam(value="files" , required = false) List<MultipartFile> files,
                                           @RequestParam("desc") String desc) throws IOException{
    System.out.println("Hits::"+desc);
    for (int i = 0; i < files.size(); i++) {
        System.out.println(files.get(i).getOriginalFilename());
    }



    return null;
} 

Но я получаю пустой список.Подскажите, пожалуйста, как получить несколько файлов весной - отдых

1 Ответ

0 голосов
/ 24 мая 2018

Поскольку это multipart/form-data, то параметры метода должны быть @RequestPart, а не @RequestParam, и ваш метод может выглядеть следующим образом, где список файлов MultiPart будет в @RequestPart(value="files" , required = false) MultipartFile... files, а @RequestPart("desc") String desc будет частью JSONполезной нагрузки.

@RequestMapping(value="/multipleFilesUpload" , method=RequestMethod.POST, 
                consumes="multipart/form-data", produces="application/json")  
public ResponseEntity<?> mutipleFileUpload(HttpServletRequest req, 
                                           @RequestPart(value="files" , required = false) MultipartFile... files,
                                           @RequestPart("desc") String desc) throws IOException{
    System.out.println("Hits::"+desc);

    List<MultipartFile> fileList = Arrays.asList(files);
    for (int i = 0; i < fileList.size(); i++) {
        System.out.println(fileList.get(i).getOriginalFilename());
    }



    return null;
}
...