springboot文件下载接口
时间: 2023-10-09 19:06:25 浏览: 72
以下是一个简单的 Spring Boot 文件下载接口示例:
```java
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile(@RequestParam("filename") String filename) {
// 获取文件路径
Path filePath = Paths.get("path/to/files/" + filename);
Resource resource = null;
try {
// 加载文件资源
resource = new UrlResource(filePath.toUri());
} catch (MalformedURLException e) {
e.printStackTrace();
}
// 确保文件存在并可读
if (resource.exists() && resource.isReadable()) {
// 设置 HTTP 头信息
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType("application/octet-stream"))
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
.body(resource);
} else {
// 文件不存在或无法读取
return ResponseEntity.notFound().build();
}
}
```
在这个示例中,`@GetMapping("/download")` 注释表示这是一个 HTTP GET 请求处理程序,且路径为 `/download`。请求参数 `filename` 指定要下载的文件名。
该方法使用 `Path` 类加载文件的路径,然后使用 `UrlResource` 类将文件加载为资源。最后,使用 `ResponseEntity` 类构建 HTTP 响应,设置响应头信息来提示浏览器下载该文件,并将文件资源作为响应体返回。
需要注意的是,`path/to/files/` 应该替换为实际文件所在的路径。
阅读全文