在Spring Boot中,您可以使用以下方法來下載文件:
ResponseEntity<byte[]>
返回文件數據和相關的HTTP頭信息。@GetMapping("/download")
public ResponseEntity<byte[]> downloadFile() throws IOException {
// 從文件系統或其他來源獲取文件
File file = new File("path/to/file");
// 將文件讀入字節數組
byte[] fileContent = Files.readAllBytes(file.toPath());
// 設置HTTP頭信息
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", file.getName());
// 返回ResponseEntity對象
return new ResponseEntity<>(fileContent, headers, HttpStatus.OK);
}
InputStreamResource
和ResponseEntity<InputStreamResource>
返回文件的輸入流和相關的HTTP頭信息。@GetMapping("/download")
public ResponseEntity<InputStreamResource> downloadFile() throws IOException {
// 從文件系統或其他來源獲取文件
File file = new File("path/to/file");
// 創建文件輸入流
InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
// 設置HTTP頭信息
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", file.getName());
// 返回ResponseEntity對象
return ResponseEntity.ok()
.headers(headers)
.contentLength(file.length())
.body(resource);
}
這兩種方法都可以用來下載文件,具體使用哪種方法取決于您的需求和偏好。