springboot实现文件上传下载步骤
时间: 2023-10-14 15:19:21 浏览: 61
好的,我可以帮您回答关于Spring Boot实现文件上传下载的步骤。
1. 依赖引入
在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
```
2. 配置文件
在application.properties文件中添加以下配置:
```
spring.servlet.multipart.max-file-size=128MB
spring.servlet.multipart.max-request-size=256MB
```
3. 文件上传
在Controller中添加以下代码:
```
@PostMapping("/uploadFile")
public String uploadFile(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
try {
// 保存文件到本地
FileCopyUtils.copy(file.getInputStream(), new FileOutputStream("upload/" + fileName));
} catch (IOException e) {
e.printStackTrace();
}
redirectAttributes.addFlashAttribute("message", "You successfully uploaded " + fileName + "!");
return "redirect:/uploadStatus";
}
```
4. 文件下载
在Controller中添加以下代码:
```
@GetMapping("/downloadFile/{fileName:.+}")
public ResponseEntity<Resource> downloadFile(@PathVariable String fileName, HttpServletRequest request) {
// 加载文件资源
Resource resource = loadFileAsResource(fileName);
// 确定MIME类型
String contentType = null;
try {
contentType = request.getServletContext().getMimeType(resource.getFile().getAbsolutePath());
} catch (IOException ex) {
ex.printStackTrace();
}
// 默认MIME类型为二进制流
if (contentType == null) {
contentType = "application/octet-stream";
}
// 构建响应
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(contentType))
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
.body(resource);
}
private Resource loadFileAsResource(String fileName) {
Resource resource = new FileSystemResource("upload/" + fileName);
if (resource.exists()) {
return resource;
} else {
throw new RuntimeException("File not found: " + fileName);
}
}
```
以上就是Spring Boot实现文件上传下载的步骤。如果您有任何疑问或需求,请随时告诉我。