昨天,咱们介绍了如何在Spring Boot中实现文件的上传。有读者问:那么若是有多个文件要同时上传呢?这就立刻奉上,当碰到多个文件要同时上传的处理方法。html
本文的动手环节将基于Spring Boot中实现文件的上传一文的例子之上,因此读者能够拿上一篇的例子做为基础来进行改造,以体会这之间的区别,下面也主要讲解核心区别的地方。java
第一步:修改文件上传页面的上传表单git
<!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是同样的,这样才能在后端处理文件的时候组织到一个数组中。github
第二步:修改后端处理接口spring
@PostMapping("/upload") @ResponseBody public 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,必定要对应。MultipartFile
数组经过循环遍历的方式对每一个文件进行存储,而后拼接结果返回信息。更多本系列免费教程连载「点击进入汇总目录」数组
第一步:启动Spring Boot应用,访问http://localhost:8080
,能够看到以下的文件上传页面。app
第二步:选择2个不大于2MB的文件,点击“提交”按钮,完成上传。spring-boot
若是上传成功,将显示相似下面的页面:post
你能够根据打印的文件路径去查看文件是否真的上传了。
本文的相关例子能够查看下面仓库中的chapter4-4
目录:
若是您以为本文不错,欢迎Star
支持,您的关注是我坚持的动力!
欢迎关注个人公众号:程序猿DD,得到独家整理的免费学习资源助力你的Java学习之路!另每周赠书不停哦~