클라이언트에 정적 파일을 제공 하는 것은 다양 한 방법으로 수행 할 수 있으며, 스프링 컨트롤러를 사용 하는 것이 최선의 선택이 아닐 수도 있습니다. 아래 다운로드 컨트롤러는 파일을 다운로드할 때 사용 됩니다. 스프링 MVC를 통해 파일을 다운로드 하는 방법에는 세 가지가 있습니다. 이 예제의 뒷부분에서는 개별적으로 살펴보겠습니다. 파일을 가져올 때 파일이 있는지 확인 합니다. 파일이 존재 하지 않는 경우, 우리는 응답에 어떤 헤더를 설정 하기 전에 FileNotFoundException을 던져. 이것은 중요 한, 그렇지 않으면 예외 핸들러는 예외를 제대로 해결 되지 않습니다. 파일을 다운로드 하는 것은 매우 간단 하 고 다음 단계를 포함 한다. 우리의 수정 된 File다운로더는 리퍼러 헤더가 null이 아닌 경우에만 파일을 브라우저로 전송 합니다. 이렇게 하면 브라우저에 Url을 입력 하거나 다른 도메인에서 들어오는 요청을 통해 이미지가 직접 다운로드 되는 것을 방지할 수 있습니다. 우리는 다음 보기를 사용 하 여이 봄 MVC 다운로드 예제를 보여줍니다.

페이지의 이러한 링크는 각 메서드를 개별적으로 트리거하고 콘텐츠 처리 특성에 따라 파일을 첨부 파일로 다운로드 하거나 브라우저에 파일을 직접 표시 합니다. 이 컨트롤러에는 두 개의 파일이 포함 됩니다. 한 파일은 응용 프로그램 (내부 리소스)에 내부 이며 다른 파일은 응용 프로그램 외부의 파일 시스템에 있습니다. 프로젝트의 외부 파일 경로를 변경 해야 합니다. 데모 목적 으로만 path에 추가 경로 변수 (내부/외부)를 포함 시켰습니다. 우리는 사용 하는 스프링 FileCopyUtils 소스에서 대상으로 스트림을 복사 하는 유틸리티 클래스. 또한 InputStream을 관리 하는 대신 Spring MVC가 FileSystemResource를 사용 하 여 스트림을 처리 하도록 할 수도 있습니다. 리소스 클래스의 구현에는 몇 가지 예가 있습니다 .이 자습서에서는 스프링 MVC를 사용 하 여 파일을 다운로드 하는 방법을 보여 줍니다.

파일을 첨부 파일로 다운로드 하거나 브라우저 내에서 파일을 직접 볼 수 있습니다. 브라우저에서 직접 파일을 표시 하려면 브라우저가 지정 된 파일 형식을 지원 해야 합니다. 우리는 여러 가지 방법을 사용 하 여 파일 다운로드를 보여줍니다: HttpServletResponse를 통해, FileSystemResource를 통해. 또한 다운로드 하는 동안 예외를 처리 하는 방법도 보여 줍니다. 이 퀵 아티클에서는 스프링 컨트롤러에서 이미지 또는 파일을 반환 하는 간단한 문제를 살펴 본 적이 있습니다. Spring MVC 응용 프로그램에서 브라우저에 파일과 같은 리소스를 다운로드 하려면 컨트롤러에서 다음을 수행 해야 합니다.

Scroll Up