场景
本地有一个文件名称不变(或者前缀不变后面拼接日期)的excel,这个excel的内容是会变的。
客户端(文件上传)
@Scheduled(cron = "0 0 8 * * ? ")
public String uploadLocalFileToRemoteServer() {
log.info("开始上传文件,时间为: "+CommonUtil.getDateTime());
File file = new File(filePath);
if (!file.exists() || !file.isFile()) {
return "本地文件不存在或不是文件,请检查文件路径:" + filePath;
}
String Url = "文件服务地址的upload接口";
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
FileSystemResource fileResource = new FileSystemResource(file);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("file", fileResource);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(Url, HttpMethod.POST, requestEntity, String.class);
log.info("结束上传文件,时间为: "+CommonUtil.getDateTime()+"------上传成功");
return "远程文件上传成功: " + response.getBody();
} catch (Exception e) {
e.printStackTrace();
log.info("结束上传文件,时间为: "+CommonUtil.getDateTime()+"------上传失败");
return "远程文件上传失败: " + e.getMessage();
}
}
服务端
private static final String UPLOAD_DIR = "E:\\";
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "请选择一个文件上传";
}
try {
String fileName = file.getOriginalFilename();
File dest = new File(UPLOAD_DIR + fileName);
file.transferTo(dest);
return "文件上传成功: " + fileName;
} catch (IOException e) {
e.printStackTrace();
return "文件上传失败: " + e.getMessage();
}
}