springBoot文件上传功能的详细代码
时间: 2023-05-28 16:04:38 浏览: 53
以下是一个基于Spring Boot的文件上传功能的详细代码示例:
1. 添加依赖
首先,需要在`pom.xml`文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
```
2. 配置文件上传大小限制
在`application.properties`文件中添加以下配置:
```properties
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
```
这将限制上传文件的大小为10MB。
3. 创建控制器
创建一个名为`FileUploadController`的控制器,并在其中添加以下代码:
```java
@RestController
public class FileUploadController {
@PostMapping("/upload")
public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file) {
String message = "";
try {
// 保存文件
byte[] bytes = file.getBytes();
Path path = Paths.get(file.getOriginalFilename());
Files.write(path, bytes);
message = "You successfully uploaded " + file.getOriginalFilename() + "!";
return ResponseEntity.status(HttpStatus.OK).body(message);
} catch (IOException e) {
e.printStackTrace();
message = "Fail to upload " + file.getOriginalFilename() + "!";
return ResponseEntity.status(HttpStatus.EXPECTATION_FAILED).body(message);
}
}
}
```
该控制器包含一个`handleFileUpload`方法,该方法使用`@PostMapping`注解将文件上传到服务器。在该方法中,使用`@RequestParam`注解注入一个`MultipartFile`类型的文件对象。然后,将文件保存到服务器,然后返回上传成功或失败的消息。
4. 创建前端页面
创建一个名为`index.html`的前端页面,并在其中添加以下代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>File Upload Example</title>
</head>
<body>
<h3>File Upload Example</h3>
<form method="POST" enctype="multipart/form-data" action="/upload">
<input type="file" name="file"/>
<br/><br/>
<input type="submit" value="Upload"/>
</form>
</body>
</html>
```
该页面包含一个简单的表单,用户可以使用该表单选择要上传的文件,并将文件上传到服务器。
5. 运行应用程序
现在可以运行该应用程序并尝试上传文件。在浏览器中打开`index.html`页面,选择要上传的文件,然后单击“上传”按钮。如果上传成功,将显示一条消息,否则将显示另一条消息。上传的文件将保存在服务器上。