下面我将为你详细讲解如何使用SpringBoot实现文件上传与下载功能。
一、上传文件
1. 添加依赖
在pom.xml
中添加如下依赖,用于实现文件上传的功能:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
2. 编写上传接口
编写一个文件上传的控制器,通过@PostMapping
注解监听POST请求,在MultipartFile
类型参数中接收上传的文件。并返回上传成功的消息。
@RestController
public class FileUploadController {
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
// 文件处理逻辑
return "Upload Success!";
}
}
3. 配置上传文件大小
在application.properties
文件中配置最大上传文件大小:
# 10MB
spring.servlet.multipart.max-file-size=10MB
# 20MB
spring.servlet.multipart.max-request-size=20MB
4. 编写前端上传页面
上传页面可以使用原生的HTML表单,也可以使用一些第三方的库(例如:Dropzone.js、Bootstrap FileInput等)。以下是一个简单的HTML表单示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Upload Page</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">Upload</button>
</form>
</body>
</html>
5. 示例
在上述步骤完成后,即可在浏览器中访问上传页面并选择需要上传的文件,最终实现文件上传功能。
二、下载文件
1. 编写下载接口
编写一个文件下载的控制器,通过@GetMapping
注解监听GET请求,在HttpServletResponse
类型参数中输出文件流,实现文件下载。
@RestController
public class FileDownloadController {
@GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
// 获取要下载的文件
File file = new File("/path/to/file/example.pdf");
// 设置文件类型(这里是下载pdf格式的文件)
response.setContentType("application/pdf");
// 设置文件头:从浏览器直接下载
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(file.getName(), "UTF-8"));
// 输出流
OutputStream outputStream = response.getOutputStream();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[1024];
int len = bis.read(buffer);
while (len != -1) {
outputStream.write(buffer, 0, len);
len = bis.read(buffer);
}
bis.close();
outputStream.flush();
outputStream.close();
}
}
2. 示例
在上述步骤完成后,即可在浏览器中访问下载接口,实现文件下载功能。
以上是SpringBoot文件上传与下载功能的简单实现方式,通过以上步骤即可快速实现文件的上传与下载功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot文件上传与下载功能实现详解 - Python技术站