昨天,咱们介绍了如何在Spring Boot中实现文件的上传。有读者问:那么如果有多个文件要同时上传呢?这就马上奉上,当碰到多个文件要同时上传的解决办法。
入手试试
本文的入手环节将基于Spring Boot中实现文件的上传一文的例子之上,所以读者能够拿上一篇的例子作为根底来进行革新,以领会这之间的区别,上面也次要解说核心区别的中央。
第一步:批改文件上传页面的上传表单
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" /> <title>文件上传页面 - didispace.com</title></head><body><h1>文件上传页面</h1><form method="post" action="/upload" enctype="multipart/form-data"> 文件1:<input type="file" name="files"><br> 文件2:<input type="file" name="files"><br> <hr> <input type="submit" value="提交"></form></body></html>
能够看到这里多减少一个input文件输入框,同时文件输入框的名称批改为了files,因为是多个文件,所以用了复数。留神:这几个输入框的name是一样的,这样能力在后端解决文件的时候组织到一个数组中。
第二步:批改后端解决接口
@PostMapping("/upload")@ResponseBodypublic String create(@RequestPart MultipartFile[] files) throws IOException { StringBuffer message = new StringBuffer(); for (MultipartFile file : files) { String fileName = file.getOriginalFilename(); String filePath = path + fileName; File dest = new File(filePath); Files.copy(file.getInputStream(), dest.toPath()); message.append("Upload file success : " + dest.getAbsolutePath()).append("<br>"); } return message.toString();}
几个重要改变:
MultipartFile
应用数组,参数名称files对应html页面中input的name,肯定要对应。- 后续解决文件的主体(for循环内)跟之前的一样,就是对
MultipartFile
数组通过循环遍历的形式对每个文件进行存储,而后拼接后果返回信息。
更多本系列收费教程连载「点击进入汇总目录」
测试验证
第一步:启动Spring Boot利用,拜访http://localhost:8080
,能够看到如下的文件上传页面。
第二步:抉择2个不大于2MB的文件,点击“提交”按钮,实现上传。
如果上传胜利,将显示相似上面的页面:
你能够依据打印的文件门路去查看文件是否真的上传了。
代码示例
本文的相干例子能够查看上面仓库中的chapter4-4
目录:
- Github:https://github.com/dyc87112/SpringBoot-Learning/
- Gitee:https://gitee.com/didispace/SpringBoot-Learning/
如果您感觉本文不错,欢送Star
反对,您的关注是我保持的能源!