springboot FileUtils文件上传下载
时间: 2023-06-29 21:20:12 浏览: 112
FileUtils实现文件下载
好的,您想了解在 Spring Boot 中如何实现文件上传和下载功能,对吧?那么,我给您简单介绍一下。
首先,在 Spring Boot 中实现文件上传和下载功能,需要用到 Commons FileUpload 和 Commons IO 这两个工具包。您可以在 Maven 中添加以下依赖:
```xml
<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.8.0</version>
</dependency>
```
接下来,我们来看一下文件上传的实现。在 Spring Boot 中,我们可以使用 MultipartFile 类来接收上传的文件。在处理上传请求时,我们需要先判断请求是否为文件上传请求,如果是,则使用 MultipartFile 类来接收上传的文件,并将文件保存到指定的目录中。
```java
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
if (!file.isEmpty()) {
// 获取文件名
String fileName = file.getOriginalFilename();
// 构建文件保存的路径
String filePath = "D:/upload/";
// 创建文件对象
File dest = new File(filePath + fileName);
// 判断目标文件所在的目录是否存在,如果不存在则创建目录
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
// 保存文件
file.transferTo(dest);
return "上传成功!";
}
return "上传失败!";
}
```
接下来,我们来看一下文件下载的实现。在 Spring Boot 中,我们可以使用 ResponseEntity 类来将文件以流的形式返回给前端。
```java
@GetMapping("/download")
public ResponseEntity<byte[]> download() throws IOException {
// 构建文件对象
File file = new File("D:/upload/test.txt");
// 文件不存在
if (!file.exists()) {
return ResponseEntity.notFound().build();
}
// 构建文件下载的响应头
HttpHeaders headers = new HttpHeaders();
headers.setContentDispositionFormData("attachment", file.getName());
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
// 使用 FileUtils 工具类将文件转换成字节数组
byte[] bytes = FileUtils.readFileToByteArray(file);
// 返回响应实体对象
return new ResponseEntity<>(bytes, headers, HttpStatus.OK);
}
```
以上就是 Spring Boot 中实现文件上传和下载的基本步骤。需要注意的是,这只是一个简单的示例,实际应用中还需要进行参数校验、异常处理等其他操作。
阅读全文