Springboot文件上传的基本使用,必须技巧之一

首先如上图我们先在yml配置文件配置一下path变量路径

然后Controller中运用Value注解下path路径值

即basePath=D:\wrk\img\

 @Value("${reggie.path}")
    private String basePath;

以下解说务必要根据代码同步解读!!!

upload()方法中用MultipartFile 类接收前端请求过来的file文件

注:file是临时文件,upload方法一旦运行到末尾结束时,file文件将会消失,所以我们要将file文件转存到一个目录下

1.首先我们先用getOriginalFilename方法获取file文件的原始路径

2.然后再获取文件的后缀,我们用lastIndexof定位要分隔字符('.')所在位置,比如是5,利用substring截取5后面的字符串,并赋值给suffix

3.后缀我们解决了之后,在解决文件名的问题,为防止文件名重复,我们利用UUID.randomUUID生成新的文件名,再加上suffix后缀变量,即文件名+后缀组成一个新的文件名

4.我们创建一个基于basePath(D:\wrk\img\)的File文件对象  dir

5.根据dir.exists是否为null,判断路径是否存在,值为null说明不存在,就利用dir.mkdirs创建一个D:\wrk\img\路径

6.最后我们使用transferTo方法重新转存到我们的路径D:\wrk\img\路径上,我们可以看到前端所传文件已经被我们转存到D:\wrk\img\目录上了

欢迎大家评论区讨论

 @RequestMapping("/upload")
    public R<String> upload(MultipartFile file){
        //file是这次请求的临时文件,需要转存到一个指定的地方,否则在本次请求过后file将消失

        //获取原始文件名
        String originalFilename=file.getOriginalFilename();
        String  suffix=originalFilename.substring(originalFilename.lastIndexOf('.'));

        //使用UUID重新生成文件名,避免文件名重复
        String fileName= UUID.randomUUID().toString()+suffix;  //提取的文件名加后缀名

        //创建一个目录对象
        File dir=new File(basePath);
        //判断目录是否存在
        if(!dir.exists()){
            //目录一旦不存在,即创建
            dir.mkdirs();
        } 
        //将临时文件转存到指定位置
        try {
            file.transferTo(new File(basePath+fileName));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return  R.success(fileName);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值