我试图使用spring restTemplate将MultipartFile列表发布到我的RestController,尽管我对确切的语法和放大器有点困惑.我的客户使用的类型和控制器.基于我所做的研究,到目前为止我所拥有的……
FileUploadClient.java
public void uploadFiles(List multiPartFileList) throws IOException {
MultiValueMap map = new LinkedMultiValueMap<>();
List files = new ArrayList<>();
for(MultipartFile file : multiPartFileList) {
files.add(new ByteArrayResource(file.getBytes()));
}
map.put("files", files);
// headers is inherited from BaseClient
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity> request = new HttpEntity<>(map, headers);
ResponseEntity response = restTemplate.exchange(restURI + "/rest/fileupload/uploadfiles", HttpMethod.POST, request, String.class);
if(HttpStatus.OK.equals(response.getStatusCode())) {
System.out.println("status for /rest/fileupload/uploadfiles ---> " + response);
}
}
FileUploadRestController.java
@RequestMapping(value = "/uploadfiles", method = RequestMethod.POST)
public ResponseEntity> uploadFiles(@RequestParam("files") List files, HttpServletRequest request) {
ResponseEntity> response;
try {
// do stuff...
response = new ResponseEntity<>(header, HttpStatus.OK);
System.out.println("file uploaded");
} catch (Exception e) {
// handle exception
}
return response;
}
web.xml中
multipartFilter
org.springframework.web.multipart.support.MultipartFilter
multipartFilter
/*
为spring-servlet.xml
如果我理解正确的话.多部分过滤器应该将我的MultiValueMap解析为MultipartFiles列表和MultipartHttpServletRequest?
我可以让我的客户端访问我的RestController的唯一方法是将文件数据作为ByteArrayResource发送,但是在我的Controller中,我的RequestBody始终为null,而MultipartHttpServletRequest的multipartFiles属性则为空映射.我看了很多帖子试图解决这个问题,但无济于事.任何帮助将非常感激.