springboot上传txt文件
时间: 2023-08-15 09:08:38 浏览: 104
Java(springboot) 读取txt文本内容代码实例
在Spring Boot中,你可以使用MultipartResolver来处理文件上传。下面是一个简单的示例代码来上传txt文件:
1. 首先,确保你Spring Boot项目中已经包含了要的依赖项,包括Spring WebApache Commons FileUpload。你可以在pom文件中添加以下依赖:
```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>
```
2. 创建一个Controller类来处理文件上传请求。例如,创建一个名为FileUploadController的类,并添加以下代码:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class FileUploadController {
@Autowired
private StorageService storageService;
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
// 文件为空,处理错误逻辑
return "redirect:/error";
}
try {
// 将文件保存到服务器上的指定路径
storageService.store(file);
// 文件上传成功,处理成功逻辑
return "redirect:/success";
} catch (Exception e) {
// 处理异常情况
return "redirect:/error";
}
}
}
```
3. 创建一个用于存储文件的服务类。例如,创建一个名为StorageService的类,并添加以下代码:
```java
import org.springframework.stereotype.Service;
import org.springframework.util.FileSystemUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@Service
public class StorageService {
private final Path rootLocation = Paths.get("upload-dir");
public void store(MultipartFile file) {
try {
// 创建目录(如果不存在)
Files.createDirectories(rootLocation);
// 将文件保存到指定路径
Files.copy(file.getInputStream(), rootLocation.resolve(file.getOriginalFilename()));
} catch (IOException e) {
throw new RuntimeException("Failed to store file", e);
}
}
public void deleteAll() {
FileSystemUtils.deleteRecursively(rootLocation.toFile());
}
public void init() {
try {
Files.createDirectories(rootLocation);
} catch (IOException e) {
throw new RuntimeException("Could not initialize storage", e);
}
}
}
```
4. 在application.properties文件中配置文件上传相关的属性。例如,添加以下配置:
```properties
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
```
这将限制上传的文件大小为10MB。
5. 在src/main目录下创建一个名为upload-dir的文件夹,用于存储上传的文件。
通过以上步骤,你就可以在Spring Boot中实现txt文件的上传功能了。你可以根据自己的需求进行修改和扩展。
阅读全文