在 Spring Boot 应用中,下载文件到本地常常是一个常见需求。我们可以使用以下步骤实现这个功能:

如何使用 Spring Boot 下载文件到本地如何使用 Spring Boot 下载文件到本地


1. 依赖引入

在 pom.xml 文件中添加依赖:

```xml org.springframework.boot spring-boot-starter-web ```

2. 创建控制器

创建控制器处理下载请求:

```java @RestController public class FileDownloadController {

@GetMapping("/download") public ResponseEntity downloadFile() { // 获取要下载的文件路径 String filePath = "path/to/file.txt";

// 读取文件内容 byte[] content = FileUtils.readFileToByteArray(new File(filePath));

// 设置 HTTP 头 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDisposition(ContentDisposition.attachment().filename("file.txt").build());

// 返回响应 return ResponseEntity.ok().headers(headers).body(content); } } ```

3. 配置安全性(可选)

如果需要,可以配置 Spring Security 权限控制下载请求:

```java @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/download").hasRole("USER") .and() .formLogin(); } } ```

4. 测试下载

在浏览器中访问 `/download` URL,文件将以附件形式下载到本地。

优化下载

为了优化下载性能,可以考虑以下建议:

使用nginx等反向代理服务器分发下载请求。 启用压缩,如Gzip,以减小文件大小。 使用HTTP范围头,允许客户端从特定偏移量开始部分下载。

结论