旁白
下面三个静态路径都写在properties文件里,要用到直接注入即可。
file.uploadPath是文件的上传路径
file.visitPath是返回完整的文件映射路径【携带端口号】
file.mapPath是返回映射路径【不带端口号】
测试
在浏览器中直接访问"http://localhost:9090/pictures/2021/12/05/68f61bc7-07b9-41c6-876b-22c9a57f5606.png"即可看到上传的照片了
上传单张照片代码实现
Controller层
// 上传图片
@ApiOperation("上传照片接口")
@PostMapping("/uploadImg")
public Result uploadImg(@ApiParam("图片") @RequestParam("file")MultipartFile multipartFile) {
return Result.success(articleService.uploadImg(multipartFile));
}
serviceImpl实现类
/**
单独拉出来
*/
@Value("${file.uploadPath}")
private String uploadPath;
@Value("${file.visitPath}")
private String visitPath;
/**
* 一二三步是生成文件名
* 四五六步是生成上传路径
* 第七步是上传并返回可视路径
* @param multipartFile
* @return
*/
@Override
public String uploadImg(MultipartFile multipartFile) {
// 1、获取真实文件名
String originalFilename = multipartFile.getOriginalFilename();
// 2、截取图片的后缀 lastIndexOf最后出现.的位置
String imgSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));
// 3、生成唯一文件名
String newFileName = UUID