溫馨提示×

spring實現(xiàn)文件下載的方法是什么

小億
264
2024-06-07 18:38:36
欄目: 編程語言

在Spring中實現(xiàn)文件下載可以使用以下方法:

  1. 使用 ResponseEntity 返回文件流:
@GetMapping("/downloadFile")
public ResponseEntity<Resource> downloadFile() {
    Resource resource = new FileSystemResource("path/to/file.txt");
    
    HttpHeaders headers = new HttpHeaders();
    headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=file.txt");
    
    return ResponseEntity
            .ok()
            .headers(headers)
            .contentLength(resource.contentLength())
            .contentType(MediaType.APPLICATION_OCTET_STREAM)
            .body(resource);
}
  1. 使用 HttpServletResponse 輸出文件流:
@GetMapping("/downloadFile")
public void downloadFile(HttpServletResponse response) {
    File file = new File("path/to/file.txt");
    
    response.setContentType(MediaType.APPLICATION_OCTET_STREAM.toString());
    response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=file.txt");
    response.setContentLength((int) file.length());
    
    try (
        InputStream inputStream = new FileInputStream(file);
        OutputStream outputStream = response.getOutputStream();
    ) {
        IOUtils.copy(inputStream, outputStream);
        outputStream.flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

這兩種方法都可以實現(xiàn)文件下載,第一種方法使用 ResponseEntity 返回文件資源,第二種方法直接使用 HttpServletResponse 輸出文件流。您可以根據(jù)自己的需求選擇其中一種方法來實現(xiàn)文件下載。

0