服务提供者
FastdfsReturnEntity:自定义返回group和url对象
/**
* 多文件上传
* @param files
* @param token
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value="/uploadFiles", method = RequestMethod.POST)
public Result uploadFiles(@RequestPart("file") MultipartFile[] files, @RequestParam("token") String token)throws Exception{
List<FastdfsReturnEntity> fastdfsReturnList = new ArrayList<FastdfsReturnEntity>();
for (MultipartFile file : files) {
//获取上传文件的文件类型
String fileType = file.getContentType();
//获取上传文件的原始名称
String fileName = file.getOriginalFilename();
String[] fileds = null;
try {
//调用fastdfs
fileds = fastDFSClient.uploadFile(file.getBytes(), fileName, null, null);
} catch (IOException e) {
e.printStackTrace();
}
FastdfsReturnEntity fastdfsReturnEntity = new FastdfsReturnEntity();
fastdfsReturnEntity.setFastdfsGroup(fileds[0]);
fastdfsReturnEntity.setFastdfsUrl(fileds[1]);
fastdfsReturnList.add(fastdfsReturnEntity);
}
Result result = new Result();
result.setData(fastdfsReturnList);
return result;
}
服务消费者
/**
* 多文件上传
* @param files
* @return
* @throws Exception
*/
@RequestMapping(value="/uploadFiles", method = RequestMethod.POST)
public Result uploadFiles(MultipartFile[] files)throws Exception{
String token = new TokenUtils().getUserToken();
String url = "http://localhost:xxxx/api/file/uploadFiles?token=" + token;
RestTemplateBuilder builder = new RestTemplateBuilder();
MultiValueMap<String, Object> param = FileUtil.getMultiValueMap(files);
Result postForObject = builder.build().postForObject(url, param, Result.class);
System.out.println(postForObject.getData());
List<FastdfsReturnEntity> fastdfsReturnList = (List<FastdfsReturnEntity>) postForObject.getData();
System.out.println(fastdfsReturnList);
return Result.success();
}