位置:首页 > 后端 > java

基于SpringBoot实现文件上传

chenlong 发布:2021-09-30 13:31:59阅读:

(1)第一步,首先配置上传路径(此处采用yml)

image.png


(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文件里面配置如下,并且在该目录下能看到文件成功上传

image.png


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

image.png

24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看