Spring Boot 文件上传示例
时间: 2023-03-14 17:10:42 浏览: 27
以下是一个使用Spring Boot实现文件上传的简单示例:
1. 添加依赖
在`pom.xml`中添加以下依赖项:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
```
2. 配置文件上传的限制
在`application.properties`文件中添加以下配置,以限制文件上传的大小:
```properties
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
```
3. 创建文件上传表单
在HTML表单中添加`enctype="multipart/form-data"`属性,并包含一个文件上传字段:
```html
<form method="POST" action="/upload" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit">上传</button>
</form>
```
4. 创建控制器处理文件上传
创建一个控制器类来处理文件上传:
```java
import java.io.IOException;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class FileUploadController {
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file, Model model) {
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
// 处理文件内容
model.addAttribute("message", "文件上传成功");
} catch (IOException e) {
e.printStackTrace();
model.addAttribute("message", "文件上传失败:" + e.getMessage());
}
} else {
model.addAttribute("message", "请选择一个文件上传");
}
return "uploadResult";
}
}
```
5. 创建结果页面
创建一个包含`message`模型属性的`uploadResult.html`模板:
```html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>文件上传结果</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="${message}"></p>
</body>
</html>
```
6. 运行应用程序并测试
现在可以启动应用程序并测试文件上传。上传成功后将显示`上传成功`消息,否则将显示相应的错误消息。
阅读全文