MultipartFile multipartFile = getMultipartFile("图片1 url");
MultipartFile multipartFile2 = getMultipartFile("图片2 url");
MultipartFile[] multipartFiles = {multipartFile, multipartFile2};
MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
for (MultipartFile file : multipartFiles) {
ByteArrayResource fileAsResource = new ByteArrayResource(file.getBytes()) {
@Override
public String getFilename() {
return file.getOriginalFilename();
}
@Override
public long contentLength() {
return file.getSize();
}
};
param.add("files", fileAsResource);
}
String url = "这里是服务端上传 url";
RestTemplate request = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(param, headers);
ResponseEntity<JSONObject> response = request.postForEntity(url, requestEntity, JSONObject.class);
if (response.getStatusCode() != HttpStatus.OK) {
System.out.println("返回状态码:"+ response.getStatusCode());
}
//图片url转换为MultipartFile
//图片url转换为MultipartFile
public static MultipartFile getMultipartFile(String url) throws IOException {
String name = url.substring(url.lastIndexOf('/')+1);
byte[] bytes = downloadPicture(url);
MultipartFile mfile = null;
ByteArrayInputStream in = null;
try {
in = new ByteArrayInputStream(bytes);
FileItemFactory factory = new DiskFileItemFactory(16, null);
FileItem fileItem = factory.createItem("mainFile", "text/plain", false, name);
IOUtils.copy(new ByteArrayInputStream(bytes), fileItem.getOutputStream());
mfile = new CommonsMultipartFile(fileItem);
} finally {
in.close();
}
return mfile;
}