基于SpringBoot实现文件上传
chenlong
发布:2021-09-30 13:31:59阅读:
(1)第一步,首先配置上传路径(此处采用yml)

(2)第二步,我这里是采用注入的方式获取配置信息的,代码如下
@Component
@ConfigurationProperties(prefix = "blog.file.config")
public class ComponentFile {
// 图片地址
private String imageUrl;
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
}(3)第三步,在Controller里面添加接口方法
@Autowired
private ComponentFile componentFile;
@RequestMapping(value = "/fileUpload", method = RequestMethod.POST)
@ResponseBody
public JsonResult<String> fileUpload(@RequestParam("file") MultipartFile file) {
log.info("fileUpload imgPath: " + componentFile.getImageUrl());
if (file.isEmpty()) {
return JsonResult.paramErrWithMsg("请选择文件");
}
String fileName = file.getOriginalFilename();
int size = (int) file.getSize();
log.info("fileUpload fileName size: " + fileName + ":" + size);
String upFilePath = componentFile.getImageUrl();
File dest = new File(upFilePath + "/" + fileName);
//判断文件父目录是否存在
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdir();
}
try {
file.transferTo(dest); //保存文件
String fileUrl = upFilePath + "/" + fileName;
return JsonResult.success(fileUrl);
} catch (IllegalStateException e) {
log.info("fileUpload IllegalStateException e: " + e);
return JsonResult.failWithMsg(e.getMessage());
} catch (IOException e) {
log.info("fileUpload IOException e: " + e);
return JsonResult.failWithMsg(e.getMessage());
}
}(4)如果需要限制文件上传大小需在properties文件里面配置如下,并且在该目录下能看到文件成功上传

(5)最后使用postman调接口测试成功,截图如下,如果超过限制大小则报错

小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧