基于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调接口测试成功,截图如下,如果超过限制大小则报错
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧