Spring Boot文件上传实战:单文件与多文件示例

0 下载量 95 浏览量 更新于2024-09-04 收藏 73KB PDF 举报
"Spring Boot实现文件上传的示例代码,涵盖单文件和多文件上传,通过创建DEMO项目,配置相关依赖,编写Controller和HTML测试页面,并可进行上传限制配置。" 在Spring Boot中实现文件上传功能,我们可以遵循以下详细步骤: 1. 创建Spring Boot项目:首先,我们需要创建一个新的Spring Boot项目,例如名为`demo-uploadfile`。这可以通过Spring Initializr或IDE的相应插件完成,选择相应的 starters,如 `spring-boot-starter-web` 以支持Web功能。 2. 添加依赖:在`pom.xml`文件中,我们需要引入必要的依赖,以便支持文件上传和模板引擎。以下是相关依赖: ```xml <dependencies> <!-- Spring Boot Web starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Thymeleaf 模板引擎 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- 测试依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> ``` 3. 编写Controller:在Java代码中,我们需要创建一个Controller类,用于处理文件上传请求。这里,我们可以定义两个方法,一个处理单个文件上传,另一个处理多个文件上传。例如: ```java package com.example.controller; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; // ... @PostMapping("/uploadSingle") public ResponseEntity<String> uploadSingle(@RequestParam("file") MultipartFile file) { // 处理单个文件上传逻辑 } @PostMapping("/uploadMultiple") public ResponseEntity<String> uploadMultiple(MultipartHttpServletRequest request) { // 处理多个文件上传逻辑 } ``` 在这两个方法中,我们通常会将接收到的文件保存到服务器的某个目录下。 4. 创建HTML测试页面:为了测试文件上传功能,我们需要创建一个Thymeleaf模板文件,如`upload.html`,让用户可以选择文件并提交上传请求。以下是一个简单的示例: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>File Upload</title> </head> <body> <h1>File Upload</h1> <form th:action="@{/uploadSingle}" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <button type="submit">Upload Single File</button> </form> <hr/> <form th:action="@{/uploadMultiple}" method="post" enctype="multipart/form-data"> <input type="file" name="files" multiple /> <button type="submit">Upload Multiple Files</button> </form> </body> </html> ``` 5. 配置文件上传限制:Spring Boot允许我们在配置文件(`application.properties`或`application.yml`)中设置文件上传的大小限制。例如: ```properties # application.properties spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB ``` 这将限制单个文件的最大大小为10MB,整个请求的最大大小也为10MB。 6. 运行测试:最后,启动Spring Boot应用,访问创建的HTML页面,尝试上传文件。确保上传逻辑正确处理文件,并将其保存到预期的位置。 通过以上步骤,我们就实现了Spring Boot中的文件上传功能,包括单文件和多文件上传。在实际应用中,我们还需要处理错误情况,例如文件类型检查、大小检查,以及上传后的文件管理等。