如何从 Retrofit 接收多部分请求 API

How To Receive Multipart Request From Retrofit API

我在服务器端使用 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;
} 

但是,我的列表是空的。 请给出如何在 spring 中接收多个文件的建议 - rest

因为它是 multipart/form-data,所以方法参数应该是 @RequestPart 而不是 @RequestParam,并且您的方法可能如下所示,其中将包含多部分文件列表 @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;
}