RestTemplate上传文件方法
都知道前端往后端传文件是通过form的形式,后端web程序之间上传,也是通过form表单。使用MultiValueMap类。
MultiValueMap formData = new LinkedMultiValueMap<>();
ByteArrayResource fileAsResource = new ByteArrayResource(a.getBytes()){
@Override
public String getFilename() {
return a.getOriginalFilename();
}
@Override
public long contentLength() {
return a.getSize();
}
};
formData.add("file",fileAsResource);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity request = new HttpEntity<>(map,headers);
ResponseEntity<Object> response = restTemplate.postForEntity(url,request,Object.class);
上传多文件所遇问题
这边我需要上传多个文件,在前端传过来时,我的接口是直接用List来接收的。于是我想当然的直接将MultiPartFile列表转化成了ByteArrayResource的list。