Spring Boot结合MultipartFile是实现文件上传最推荐的方式。通过@RestController和@PostMapping接收文件,使用MultipartFile处理上传的文件,配合application.yml配置文件大小限制,可轻松实现单文件或批量上传;原生Servlet可通过@MultipartConfig注解和Part接口实现;多文件上传支持MultipartFile[]或List;需注意文件类型校验、大小限制、重命名、存储路径安全及病毒扫描等安全优化措施。

Java 实现文件上传功能,主要依赖于后端框架处理 HTTP 的 multipart/form-data 请求。常见的实现方式包括使用原生 Servlet、Spring MVC 和 Spring Boot。下面介绍几种主流且实用的方法。
这是目前最常见、最简洁的方式。Spring Boot 对文件上传提供了良好的支持,结合 MultipartFile 接口可以轻松处理上传请求。
步骤如下:
示例代码:
立即学习“Java免费学习笔记(深入)”;
@RestController
public class FileUploadController {
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "请选择文件";
}
try {
// 保存文件到指定路径
String fileName = file.getOriginalFilename();
Path path = Paths.get("uploads/" + fileName);
Files.write(path, file.getBytes());
return "文件上传成功: " + fileName;
} catch (IOException e) {
return "上传失败: " + e.getMessage();
}
}
}
配置文件大小限制(application.yml):
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
如果不使用 Spring 框架,可以通过 Servlet 3.0+ 提供的 @MultipartConfig 注解来处理文件上传。
示例代码:
立即学习“Java免费学习笔记(深入)”;
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
filePart.write("uploads/" + fileName);
response.getWriter().println("文件上传成功:" + fileName);
}
}
需要在 web.xml 或通过注解启用 multipart 配置。
实际开发中经常需要上传多个文件。Spring 支持直接使用 MultipartFile[] 或 List<MultipartFile> 接收。
示例:
@PostMapping("/upload-multiple")
public String uploadFiles(@RequestParam("files") MultipartFile[] files) {
for (MultipartFile file : files) {
if (!file.isEmpty()) {
try {
Path path = Paths.get("uploads/" + file.getOriginalFilename());
Files.write(path, file.getBytes());
} catch (IOException e) {
return "部分文件上传失败";
}
}
}
return "全部文件上传成功";
}
实现文件上传时,需注意以下几点以提升安全性和稳定性:
基本上就这些。Spring Boot 结合 MultipartFile 是最推荐的方式,开发效率高,维护方便。
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号