>Java >java지도 시간 >Spring Controller에서 생성된 PDF 파일을 효율적으로 다운로드하는 방법은 무엇입니까?

Spring Controller에서 생성된 PDF 파일을 효율적으로 다운로드하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-23 18:00:24765검색

How to Efficiently Download Generated PDF Files from Spring Controllers?

Spring Controller에서 PDF 파일 다운로드

배경:

웹 애플리케이션에서 효율적으로 파일 다운로드 일반적인 요구 사항입니다. 이 기사에서는 Spring 컨트롤러에서 생성된 PDF 파일을 다운로드하는 문제에 대해 설명합니다.

PDF 파일 생성:

PDF 파일을 생성하려면 Freemarker 템플릿과 iText와 같은 PDF 생성 프레임워크. 이를 통해 사용자 입력 또는 기타 데이터를 기반으로 PDF 콘텐츠를 동적으로 생성할 수 있습니다.

컨트롤러를 통해 파일 다운로드:

Spring 컨트롤러를 통해 파일 다운로드를 활성화하려면:

  1. 컨트롤러 생성 메서드:
    다운로드 요청을 처리하는 컨트롤러 메서드를 만듭니다. 일반적으로 여기에는 @RequestMapping 주석을 사용하여 메서드를 특정 요청 경로에 매핑하는 작업이 포함됩니다. 예:

    @RequestMapping(value = "/download/pdf/{fileName}", method = RequestMethod.GET)
    public void downloadPdf(@PathVariable("fileName") String fileName, HttpServletResponse response) {
    ...
    }
  2. 파일 데이터 가져오기:
    PDF 데이터를 InputStream으로 가져옵니다. 여기에는 PDF 생성 로직을 호출하거나 저장 위치에서 파일을 가져오는 작업이 포함될 수 있습니다.
  3. 응답 구성:
    파일 유형을 나타내도록 응답 헤더를 설정하고 지정합니다. 저장할 파일 이름. PDF 파일의 경우 다음을 사용하세요.

    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
  4. 파일 데이터를 응답에 복사하세요.
    org.apache.commons.io.IOUtils를 사용하세요. PDF 데이터를 입력 스트림에서 응답 출력으로 전송하는 복사 방법 스트림:

    IOUtils.copy(inputStream, response.getOutputStream());
  5. 응답 플러시:
    응답을 플러시하여 PDF 파일을 클라이언트에 보냅니다. 그러면 다운로드 프로세스가 시작됩니다.

예제 코드:

다음 코드 조각은 PDF 파일 다운로드를 위한 컨트롤러 메소드 구현을 보여줍니다.

@RequestMapping(value = "/files/{file_name}", method = RequestMethod.GET)
public void getFile(
    @PathVariable("file_name") String fileName, 
    HttpServletResponse response) {
    try {
      // get your file as InputStream
      InputStream is = ...;
      // copy it to response's OutputStream
      IOUtils.copy(is, response.getOutputStream());
      response.flushBuffer();
    } catch (IOException ex) {
      log.info("Error writing file to output stream. Filename was '{}'", fileName, ex);
      throw new RuntimeException("IOError writing file to output stream");
    }

}

위 내용은 Spring Controller에서 생성된 PDF 파일을 효율적으로 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.