springboot上传下载文件
时间: 2023-05-26 17:03:01 浏览: 107
springboot + thymeleaf 实现一个简单的文件上传下载Demo
Spring Boot提供了很多方便的方式来处理文件上传和下载,其中包括使用Spring MVC的Multipart File功能、使用Apache的Commons File Upload库等。
以下是通过Spring MVC的Multipart File功能来实现上传和下载文件的示例代码:
上传文件:
```java
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {
String fileName = file.getOriginalFilename();
String filePath = "/upload/";
File destFile = new File(filePath + fileName);
try {
file.transferTo(destFile);
} catch (IOException e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to upload file!");
}
return ResponseEntity.ok("File uploaded successfully!");
}
```
下载文件:
```java
@RequestMapping(value = "/downloadFile", method = RequestMethod.GET)
public ResponseEntity<ByteArrayResource> downloadFile(@RequestParam String fileName) throws IOException {
String filePath = "/upload/";
File file = new File(filePath + fileName);
byte[] data = FileUtils.readFileToByteArray(file);
ByteArrayResource resource = new ByteArrayResource(data);
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + file.getName())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.contentLength(data.length)
.body(resource);
}
```
其中,上传文件的示例代码首先从MultipartFile对象中获取文件名和文件路径,然后将文件保存到指定路径中。如果上传失败,则返回500错误响应,否则返回200响应。
下载文件的示例代码首先从指定路径中获取要下载的文件,然后将其读取为字节数组并包装成ByteArrayResource对象,最后设置响应头、响应类型和响应体,并以200响应返回给客户端。
阅读全文