文件上传
/**
* 文件上传
* @param file 文件
* @param fileSaveName 文件保存名称(不包含文件扩展名)
* @param pathSuffix 指定文件保存路径拼接后缀,多级使用/分隔,如:person/ 实际保存路径就是 xxx/pathSuffix/xxx.jpg
* @return
*/
@PostMapping("/file/upload")
public ResultData fileUpload(@RequestParam(value = "file") MultipartFile file, String fileSaveName, String pathSuffix) {
try {
if (ObjectUtil.isNull(file.getInputStream())) return ResultData.fail("上传失败");
Map<String, String> dataMap = new HashMap<>();
//构建保存路径
String fileName = file.getOriginalFilename();
String fileExtension = fileName.substring(fileName.lastIndexOf("."));
if (ObjectUtil.isNull(fileSaveName)) {
fileSaveName = IdUtil.simpleUUID() + fileExtension;
} else if (fileSaveName.indexOf(".") == -1) {
fileSaveName = fileSaveName + fileExtension;
}
if (ObjectUtil.isNull(pathSuffix)) {
StringBuilder sb = new StringBuilder();
LocalDate nowData = LocalDate.now();
sb.append(nowData.getYear() + "/");
sb.append(nowData.getMonthValue() + "/");
sb.append(nowData.getDayOfMonth() + "/");
pathSuffix = sb.toString();
}
// String fileSavePath = fileUrlPrefix + pathSuffix + fileSaveName;
String fileSavePath = "/" + pathSuffix + fileSaveName;
String fileAccessPath = fileAccessUrlPrefix + pathSuffix + fileSaveName;
//保存文件
saveFile(file, fileSaveName, filePath + pathSuffix);
dataMap.put("fileName", fileName);
dataMap.put("fileSaveName", fileSaveName);
dataMap.put("fileSavePath", fileSavePath);
dataMap.put("fileAccessPath", fileAccessPath);
return ResultData.ok(dataMap);
} catch (Exception e) {
e.printStackTrace();
return ResultData.fail("上传失败");
}
}