经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
[测试]Sprint Boot
来源:cnblogs  作者:Jafeney  时间:2021/6/21 10:06:35  对本文有异议

昨天,我们介绍了如何在Spring Boot中实现文件的上传。有读者问:那么如果有多个文件要同时上传呢?这就马上奉上,当碰到多个文件要同时上传的处理方法。

动手试试

本文的动手环节将基于Spring Boot中实现文件的上传一文的例子之上,所以读者可以拿上一篇的例子作为基础来进行改造,以体会这之间的区别,下面也主要讲解核心区别的地方。

第一步:修改文件上传页面的上传表单

  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8" />
  5. <title>文件上传页面 - didispace.com</title>
  6. </head>
  7. <body>
  8. <h1>文件上传页面</h1>
  9. <form method="post" action="/upload" enctype="multipart/form-data">
  10. 文件1:<input type="file" name="files"><br>
  11. 文件2:<input type="file" name="files"><br>
  12. <hr>
  13. <input type="submit" value="提交">
  14. </form>
  15. </body>
  16. </html>

可以看到这里多增加一个input文件输入框,同时文件输入框的名称修改为了files,因为是多个文件,所以用了复数。注意:这几个输入框的name是一样的,这样才能在后端处理文件的时候组织到一个数组中。

第二步:修改后端处理接口

  1. @PostMapping("/upload")
  2. @ResponseBody
  3. public String create(@RequestPart MultipartFile[] files) throws IOException {
  4. StringBuffer message = new StringBuffer();
  5. for (MultipartFile file : files) {
  6. String fileName = file.getOriginalFilename();
  7. String filePath = path + fileName;
  8. File dest = new File(filePath);
  9. Files.copy(file.getInputStream(), dest.toPath());
  10. message.append("Upload file success : " + dest.getAbsolutePath()).append("<br>");
  11. }
  12. return message.toString();
  13. }

几个重要改动:

  1. MultipartFile使用数组,参数名称files对应html页面中input的name,一定要对应。
  2. 后续处理文件的主体(for循环内)跟之前的一样,就是对MultipartFile数组通过循环遍历的方式对每个文件进行存储,然后拼接结果返回信息。

更多本系列免费教程连载「点击进入汇总目录」

测试验证

第一步:启动Spring Boot应用,访问http://localhost:8080,可以看到如下的文件上传页面。

第二步:选择2个不大于2MB的文件,点击“提交”按钮,完成上传。

如果上传成功,将显示类似下面的页面:

你可以根据打印的文件路径去查看文件是否真的上传了。

代码示例

本文的相关例子可以查看下面仓库中的chapter4-4目录:

如果您觉得本文不错,欢迎Star支持,您的关注是我坚持的动力!

本文由博客一文多发平台 OpenWrite 发布!

原文链接:http://www.cnblogs.com/Jafeney/p/14909673.html

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

本站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号