Spring Controller에서 PDF 파일 다운로드
배경:
웹 애플리케이션에서 효율적으로 파일 다운로드 일반적인 요구 사항입니다. 이 기사에서는 Spring 컨트롤러에서 생성된 PDF 파일을 다운로드하는 문제에 대해 설명합니다.
PDF 파일 생성:
PDF 파일을 생성하려면 Freemarker 템플릿과 iText와 같은 PDF 생성 프레임워크. 이를 통해 사용자 입력 또는 기타 데이터를 기반으로 PDF 콘텐츠를 동적으로 생성할 수 있습니다.
컨트롤러를 통해 파일 다운로드:
Spring 컨트롤러를 통해 파일 다운로드를 활성화하려면:
컨트롤러 생성 메서드:
다운로드 요청을 처리하는 컨트롤러 메서드를 만듭니다. 일반적으로 여기에는 @RequestMapping 주석을 사용하여 메서드를 특정 요청 경로에 매핑하는 작업이 포함됩니다. 예:
@RequestMapping(value = "/download/pdf/{fileName}", method = RequestMethod.GET) public void downloadPdf(@PathVariable("fileName") String fileName, HttpServletResponse response) { ... }
응답 구성:
파일 유형을 나타내도록 응답 헤더를 설정하고 지정합니다. 저장할 파일 이름. PDF 파일의 경우 다음을 사용하세요.
response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
파일 데이터를 응답에 복사하세요.
org.apache.commons.io.IOUtils를 사용하세요. PDF 데이터를 입력 스트림에서 응답 출력으로 전송하는 복사 방법 스트림:
IOUtils.copy(inputStream, response.getOutputStream());
예제 코드:
다음 코드 조각은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!