不需要额外的库就能够上传文件:

  • 上传表单
  • 接收文件
  • 大小限制

1. 上传表单

在 HTML 文件中写上传文件的表单:

<form action="/upload" method="POST" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">上传</button>
</form>

2. 接收文件

服务器端使用 MultipartFile 接收前端上传的文件:

@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
    return file.getOriginalFilename();
}

为了方便地操作文件,推荐使用 Apache Commons IO 的类 FileUtils,其依赖为 implementation 'commons-io:commons-io:2.6':

// 保存上传的文件到 savePath
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(savePath));

保存文件时,如果文件夹不存在则会自动创建。

3. 大小限制

在 application.properties 中配置上传文件的大小限制:

# 上传一个文件最大值, 5MB, 默认 1MB
spring.servlet.multipart.max-file-size = 5MB
# 上传多个文件最大值, 50M, 默认 10MB
spring.servlet.multipart.max-request-size = 50MB

实际项目部署后,上传文件的大小限制一般涉及到 3 个地方的配置:

  • 前端网页
  • 负载均衡如 Nginx
  • 后端配置

最终文件上传的大小限制取这 3 个地方的最小值。

results matching ""

    No results matching ""