写一个springboot的文件下载接口
时间: 2023-10-15 16:15:49 浏览: 165
springboot 文件上传下载
好的,以下是一个简单的Spring Boot文件下载接口的示例代码:
```
@RestController
public class FileDownloadController {
@GetMapping("/download")
public ResponseEntity<ByteArrayResource> downloadFile() throws IOException {
// 读取文件并将其转换为字节数组
byte[] data = Files.readAllBytes(Paths.get("path/to/file"));
// 创建一个字节数组资源对象
ByteArrayResource resource = new ByteArrayResource(data);
// 设置响应头信息
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=file.txt");
// 创建一个响应实体对象
ResponseEntity<ByteArrayResource> response = ResponseEntity.ok()
.headers(headers)
.contentLength(data.length)
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(resource);
return response;
}
}
```
在上面的代码中,我们首先从文件系统中读取文件并将其转换为字节数组。接着,我们创建一个 `ByteArrayResource` 对象,它可以将字节数组作为资源返回给客户端。然后,我们设置响应头信息,其中 `Content-Disposition` 告诉浏览器将文件作为附件下载。最后,我们创建一个 `ResponseEntity` 对象并将其返回,它包含了字节数组资源和其他响应信息。
你可以将这个控制器类放入你的Spring Boot应用程序中,并通过访问 `/download` 路径来下载文件。请注意,你需要将 `path/to/file` 替换为你要下载的文件的实际路径。
阅读全文