springboot实现文件上传下载
时间: 2023-02-07 15:57:07 浏览: 33
在 Spring Boot 中实现文件上传和下载非常简单,你只需要在你的项目中引入对应的依赖,然后在你的代码中使用 Spring 提供的工具类即可。
首先,你需要在项目的 pom.xml 文件中引入 spring-boot-starter-web 依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
然后你就可以在你的 Controller 中使用 Spring 提供的工具类来实现文件的上传和下载了。
文件上传示例代码如下:
```
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@PostMapping("/upload")
public void upload(@RequestParam("file") MultipartFile file) {
// 使用 file.getInputStream() 和 file.getOriginalFilename() 获取文件输入流和文件名
// 然后你可以使用这些信息将文件保存到你的服务器中
}
```
文件下载示例代码如下:
```
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
@GetMapping("/download")
public ResponseEntity<InputStreamResource> download() throws IOException {
File file = new File("/path/to/your/file.txt");
InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + file.getName())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.contentLength(file.length())
.body(resource);
}
```
注意,
阅读全文