public ResultVo uploadPackage(@RequestBody MultipartFile file) {
//非空校验
if (file == null) {
return ResultVo.error("上传文件不能为空");
}
//获取文件名称
String filename = file.getOriginalFilename();
//判断文件格式是否正确
if (!".zip".equals(filename.substring(filename.lastIndexOf(".")))) {
return ResultVo.error("文件格式不正确");
}
//获取系统临时缓存目录
String tempFilePath = System.getProperty("java.io.tmpdir") + filename;
//生成一个临时文件
File file = new File(tempFilePath);
try {
//将源文件内容转移到临时文件中
multipartFile.transferTo(file);
} catch (IOException e) {
e.printStackTrace();
}
//把临时文件转换成FileSystemResource
FileSystemResource resource = new FileSystemResource(tempFilePath);
HttpHeaders headers = new HttpHeaders();
//设置头格式
MediaType type = MediaType.parseMediaType(MediaType.MULTIPART_FORM_DATA_VALUE);
headers.setContentType(type);
MultiValueMap<String, Object> bodyMap = new LinkedMultiValueMap<>();
//由于上传文件不能直接使用MultipartFile类型来进行上传,需要转换为FileSystemResource类型进行上传
bodyMap.add("file", resource);
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(bodyMap, headers);
ResponseEntity<String> responseEntity = restTemplate.exchange("url", HttpMethod.PUT, httpEntity, String.class);
//删除临时文件
try {
file.delete();
} catch (Exception e) {
logger.error("删除临时文件失败 -> " + e.getMessage());
e.printStackTrace();
}
if (HttpStatus.CREATED.value() == responseEntity.getStatusCodeValue()) {
return ResultVo.ok();
} else {
logger.error("上传文件失败");
return ResultVo.error("上传文件失败");
}
}
restTemplate上传文件信息到其他服务器
最新推荐文章于 2024-07-14 22:18:32 发布