乐趣区

关于java:Spring-Boot-2x基础教程多个文件的上传

昨天,咱们介绍了如何在 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")
@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();}

几个重要改变:

  1. MultipartFile应用数组,参数名称 files 对应 html 页面中 input 的 name,肯定要对应。
  2. 后续解决文件的主体(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 反对,您的关注是我保持的能源!

欢送关注我的公众号:程序猿 DD,取得独家整顿的收费学习资源助力你的 Java 学习之路!另每周赠书不停哦~

退出移动版