java实现文件上传下载 springboot框架代码示例
时间: 2024-06-06 22:04:14 浏览: 117
springboot + thymeleaf 实现一个简单的文件上传下载Demo
Java中实现文件上传下载可以使用Servlet或SpringMVC框架,这里我为您提供SpringBoot框架的代码示例。
1. 文件上传:
在SpringBoot中,我们可以使用MultipartFile类来接收上传的文件。以下是一个简单的文件上传示例:
```java
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
String fileName = file.getOriginalFilename();
String filePath = "/path/to/save/file/" + fileName;
File dest = new File(filePath);
file.transferTo(dest);
return "success";
}
```
其中,@PostMapping("/upload")表示接收POST请求,并映射到/upload路径;@RequestParam("file")表示接收名为"file"的文件参数,将其转化为MultipartFile类型;MultipartFile提供了transferTo方法,可以将上传的文件保存到指定的文件路径中。
2. 文件下载:
在SpringBoot中,我们可以使用ResponseEntity类来实现文件下载。以下是一个简单的文件下载示例:
```java
@GetMapping("/download")
public ResponseEntity<byte[]> download() throws IOException {
String filePath = "/path/to/download/file/";
File file = new File(filePath);
HttpHeaders headers = new HttpHeaders();
headers.setContentDispositionFormData("attachment", file.getName());
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK);
}
```
其中,@GetMapping("/download")表示接收GET请求,并映射到/download路径;HttpHeaders提供了setContentDispositionFormData方法,可以设置下载文件的名称;MediaType.APPLICATION_OCTET_STREAM表示以二进制流的形式下载文件。FileUtils.readFileToByteArray方法可以将指定文件读取为字节数组,最终使用ResponseEntity返回下载结果。
阅读全文