服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - java实现文件夹上传功能实例代码(SpringBoot框架)

java实现文件夹上传功能实例代码(SpringBoot框架)

2023-04-03 14:47云储储 Java教程

在web项目中上传文件夹现在已经成为了一个主流的需求,下面这篇文章主要给大家介绍了关于java实现文件夹上传功能(springBoot框架)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

有时我们后台管理等服务可能会有这样一个简单需求,就是根据文件夹将整个文件夹下的所有资源都上传到我们的服务器上,本人也是搜索了大量资料,最终以最简单便捷的方式实现该功能,具体操作步骤如下

一、前端如何设置上传组件并将资源上传到后台服务

这里的项目框架为若依VUE版本,下面将核心的代码抽离出来进行代码示例,方便大家快速阅读

1)首先我们需要新建一个用来提交文件夹的form表单

1.添加一个 type=file 的 input 提交组件,添加 webkitdirectory 标识来使用文件夹上传功能

2.添加 @change=“uploadSoundCodeFolder” 事件,当我们上传了文件夹后将触发 uploadSoundCodeFolder() 函数来处理上传逻辑

?
1
2
3
4
5
6
<form id="uploadSoundCodeFolderForm"
style="display: none" method="post"
enctype="multipart/form-data">
  <input id="fileFolder" name="fileFolder" type="file"
        @change="uploadSoundCodeFolder" webkitdirectory>
</form>

uploadSoundCodeFolder() 实现逻辑如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uploadSoundCodeFolder(e){
      this.uploadSoundCodeLoading = true;
      //获取到选中的文件夹内的所有文件
      //files 为一个集合
      //可通过遍历 files 的方式获取到每个文件的大小等数据,来实现大小限制等需求
      let files = e.target.files;
        
      //中间省略大小限制等需求......
      
      //获取表单数据
      let formData = new FormData(document.getElementById("uploadSoundCodeFolderForm"));
 
      //调用后台服务方法来提交该表单数据
      uploadSoundCode(formData).then((res)=>{
                _this.$message.success("上传成功")
                //上传成功后清空表单数据
                $("#fileFolder").val('');
      })
}

2)然后我们添加自己框架内的一些按钮来触发该隐藏的表单

这样做的好处是使用了form文件夹上传的功能,却不用使用他的UI

?
1
2
3
4
5
<!-- 首先创建一个按钮用来触发上传事件 uploadSoundCodeBtn() -->
<el-button  v-loading="uploadSoundCodeLoading"
@click="uploadSoundCodeBtn">
上传文件夹
</el-button>
?
1
2
3
4
/*上传事件触发的方法*/
uploadSoundCodeBtn(){
  $("#fileFolder").click();
},

二、后台如何接收处理文件夹表单数据

这里我们使用 List fileFolde 类型来接受前端发来的文件集合,fileFolde为表单里面的 name

?
1
2
3
4
5
@RequestMapping(value="/uploadSoundCode",method= RequestMethod.POST)
public AjaxResult uploadSoundCode(List<MultipartFile> fileFolde) throws IOException {
        String soundCodeUrl = HereUtil.uploadSoundCode(fileFolder);
        return AjaxResult.success(soundCodeUrl);
    }

然后根据业务将文件保存到服务器就行了

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static String uploadSoundCode(List<MultipartFile> files) throws IOException {
 
        for (MultipartFile file : files) {
            String fileName = file.getOriginalFilename();
            if (StrUtil.isBlank(fileName)){
                continue;
            }
            
            //上传后的URL全路径
            String fullFilePath = "上传的跟路径" + fileName;
            FileUtil.writeFromStream(file.getInputStream(), fullFilePath);
        }
 
        return "";
    }

总结

到此这篇关于java实现文件夹上传功能的文章就介绍到这了,更多相关springBoot实现文件夹上传内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/sunhoms/article/details/128345126

延伸 · 阅读

精彩推荐
  • Java教程页面的缓存与不缓存设置及html页面中meta的作用

    页面的缓存与不缓存设置及html页面中meta的作用

    这篇文章主要介绍了页面的缓存与不缓存设置及html页面中meta的作用的相关资料,需要的朋友可以参考下 ...

    残剑_6162020-05-01
  • Java教程Java实现简单扫雷程序

    Java实现简单扫雷程序

    这篇文章主要为大家详细介绍了Java实现简单扫雷程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    原创小白变怪兽11922023-02-15
  • Java教程Java画笔的简单实用方法

    Java画笔的简单实用方法

    这篇文章主要介绍了Java画笔的简单实用方法,需要的朋友可以参考下...

    mengwei7202020-12-28
  • Java教程Java反射之深入理解

    Java反射之深入理解

    这篇文章主要介绍了Java反射机制的深入理解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    威斯布鲁克.猩猩7732021-12-29
  • Java教程kotlin java 混合代码 maven 打包实现

    kotlin java 混合代码 maven 打包实现

    这篇文章主要介绍了kotlin java 混合代码 maven 打包实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    Java Pro4192021-08-19
  • Java教程springboot实现maven多模块和打包部署

    springboot实现maven多模块和打包部署

    本文主要介绍了springboot实现maven多模块和打包部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下...

    一叶知秋_dba7642022-11-08
  • Java教程RocketMQ设计之同步刷盘

    RocketMQ设计之同步刷盘

    这篇文章主要介绍了RocketMQ设计之同步刷盘,文章主要通过CommitLog的handleDiskFlush方法展开全文内容,实现同步刷盘,下面文章详细介绍,需要的小伙伴可以...

    周杰伦本人11782022-10-11
  • Java教程JNI实现最简单的JAVA调用C/C++代码

    JNI实现最简单的JAVA调用C/C++代码

    这篇文章主要介绍了JNI实现最简单的JAVA调用C/C++代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    IT_xiao小巫4142020-12-09