经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring Boot » 查看文章
java实现文件夹上传功能实例代码(SpringBoot框架)
来源:jb51  时间:2023/4/3 10:00:32  对本文有异议

前言

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

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

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

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

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

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

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

uploadSoundCodeFolder() 实现逻辑如下

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

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

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

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

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

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

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

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

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

总结

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号