SpringBoot框架实现文件下载
时间: 2023-12-13 14:59:40 浏览: 116
在SpringBoot中,文件下载通常通过设置HTTP响应头来实现。以下是一个示例,演示如何使用SpringBoot框架实现文件下载:
1.创建一个控制器类,例如FileDownloadController。
```java
@RestController
public class FileDownloadController {
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile(@RequestParam String fileName) throws IOException {
Resource resource = new UrlResource("file:/path/to/your/file/" + fileName);
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"");
return ResponseEntity.ok()
.headers(headers)
.contentLength(resource.getFile().length())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(resource);
}
}
```
2. 在上面的示例中,我们使用@GetMapping注释来定义一个HTTP GET请求的处理程序方法。该方法使用@RequestParam注释接收文件名参数。然后,我们使用UrlResource类加载文件资源。接下来,我们设置HTTP响应头以指示浏览器下载文件。最后,我们使用ResponseEntity来返回文件资源。
3.启动应用程序,访问http://localhost:8080/download?fileName=test.txt即可下载名为“test.txt”的文件。
需要注意的是,上面的示例假定文件位于本地文件系统中。如果文件存储在其他位置(如Amazon S3),则需要使用相应的类来加载资源。
阅读全文