在springboot中如何实现文件上传和下载功能
时间: 2024-02-05 17:14:16 浏览: 29
在Spring Boot中,可以使用Spring MVC的MultipartResolver来处理文件上传和下载。下面是基本的实现步骤:
1. 添加依赖
在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.3.3</version>
</dependency>
```
2. 配置MultipartResolver
在Spring Boot中,可以通过@Configuration注解来配置MultipartResolver,具体如下:
```
@Configuration
public class AppConfig {
@Bean
public CommonsMultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setMaxUploadSize(1024*1024*10); // 设置上传文件的大小限制为10MB
return multipartResolver;
}
}
```
3. 实现文件上传
在Controller中添加以下代码来处理文件上传请求:
```
@PostMapping("/upload")
@ResponseBody
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
String fileName = file.getOriginalFilename();
byte[] bytes = file.getBytes();
// 保存文件到本地文件系统或者数据库等
return "上传成功!";
} catch (IOException e) {
e.printStackTrace();
return "上传失败!";
}
} else {
return "上传失败,因为文件是空的。";
}
}
```
4. 实现文件下载
在Controller中添加以下代码来处理文件下载请求:
```
@GetMapping("/download")
public ResponseEntity<Resource> handleFileDownload() {
// 从数据库或者本地文件系统等获取文件
Path path = Paths.get("path/to/file");
Resource resource = new FileSystemResource(path.toFile());
// 设置Content-Disposition响应头部,让浏览器下载文件而不是显示文件
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"");
return ResponseEntity.ok().headers(headers).body(resource);
}
```
以上就是Spring Boot实现文件上传和下载功能的基本步骤。