基于SpringBoot实现文件上传
 chenlong
						发布:2021-09-30 13:31:59阅读:
					
					
						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调接口测试成功,截图如下,如果超过限制大小则报错

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