FileController
/**
* 文件上传至服务器
*/
@ApiOperation("文件上传")
@PostMapping("/upload")
public R upload(MultipartFile file){
String uploadUrl = fileService.upload(file);
return R.ok().message("文件上传成功").data("url", uploadUrl);
}
FileServiceImpl
/**
* 上传文件
* @param file
* */
public String upload(MultipartFile file){
//图片校验(图片是否为空,图片大小,上传的是不是图片、图片类型(例如只能上传png)等等)
if (file.isEmpty()) {
return "图片上传失败";
}
//可以自己加一点校验 例如上传的是不是图片或者上传的文件是不是png格式等等 这里省略
//获取原来的文件名和后缀
String originalFilename = file.getOriginalFilename();
// String ext = "." + FilenameUtils.getExtension(orgFileName); --需要导依赖
String ext = "."+ originalFilename.split("\\.")[1];
//生成一个新的文件名(以防有重复的名字存在导致被覆盖)
String uuid = UUID.randomUUID().toString().replace("-", "");
String newName = uuid + ext;
//拼接图片上传的路径 url+图片名
String path = "/home/yhy/testpro/pic/" + newName;
try {
file.transferTo(new File(path));
} catch (IOException e) {
e.printStackTrace();
}
return path;
}