java文件上传变成文件夹

近期做了一个项目,用到了图片上传的模块,但是写完接口后测试,上传的总是变成了文件夹,于是刨根问底的找原因,最终发现代码里面少了一个方法我的代码是这样的

 
if (!dir.exists()) {
dir.mkdirs();
}

 

 

于是,翻山越岭找原因,终于找到了问题的根源dir.mkdirs()代表创建路径为dir的文件夹,而正确的代码应该是

 

 

 

 
if (!dir.getParentFile().exists()) {
dir.getParentFile().mkdirs();
}

 

 

这样就会将文件上传,而不会变成文件夹。

接下来是全部的上传代码

 public void fileURL(MultipartFile[] file, HttpServletRequest request) {
        List list = new ArrayList<String>();
        try {
            //获取文件存储路径
            String path = "上传路径";
            for(int i = 0;i<file.length;i++){
                String fileName = file[i].getOriginalFilename();//获取到上传文件的名字
                String suffix = fileName.substring(fileName.lastIndexOf('.'));//获取文件后缀
                String newfileName = suffix;//随机生成文件名
                File dir = new File(path, newfileName);//在目录中创建文件目录
                if (!dir.getParentFile().exists()) {
                    dir.getParentFile().mkdirs();//创建文件
                }
                //MultipartFile自带的解析方法
                file[i].transferTo(dir);//转换文件
                list.add(newfileName);
            }

        } catch (Exception e) {
           e.getMessage();
        }

    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值