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 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<>();
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("上传文件失败");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律