spring ajax 파일 다운로드

이 게시물에서, 어떻게 이미지, 우편, pdf 등 파일을 다운로드 하는 스프링 MVC 응용 프로그램을 개발 하기 위해 웹 서버에서 로컬 컴퓨터로 표시 됩니다. “다운로드 abc .pdf” 연결을 클릭 하십시오, 그것은 다른 이름으로 저장 대화 상자를 열 것 이다. 수정 된 파일은 referer 헤더가 null이 아닌 경우에만 브라우저로 파일이 전송 됩니다. 이렇게 하면 브라우저 또는 다른 도메인에서 들어오는 요청에 url을 입력 하 여 이미지를 직접 다운로드 하지 못하게 됩니다. 많은 시간, 다른 웹사이트는 직접 링크로 그들의 웹사이트에 있는 당신의 파일을 교차할 지도 모른다. 당신은 그것을 허용 하 고 싶지 않을 수도 있습니다. 다른 도메인에서 오는 모든 다운로드 요청을 허용 하지 않으려면 referer 헤더에 도메인 이름이 포함 되어 있는지 확인할 수 있습니다. 아래의 다운로드 컨트롤러를 사용 하 여 파일을 다운로드할 수 있습니다. 스프링 MVC를 통해 파일을 다운로드할 수 있는 세 가지 방법이 있습니다. 이 예의 뒷부분에서 개별적으로 살펴보겠습니다. 파일을 가져올 때 파일이 있는지 확인 합니다. 파일이 없는 경우 응답에 헤더를 설정 하기 전에 filenotfotexception을 throw 합니다. 이는 중요 한 데, 그렇지 않으면 예외 처리기가 예외를 제대로 해결 하지 않습니다.

inputstream을 관리 하는 대신 우리는 또한 스프링 MVC가 filesystemresource를 사용한 스트림을 처리 하도록 할 수 있습니다. 리소스 클래스의 구현에는 여러 가지 예가 있습니다. 응용 프로그램 개발에서 우리는 파일과 같은 리소스를 다운로드 하는 데 필요한 대부분의 시간, 서버 측면에서 xls 보고서 브라우저 요청을 사용 합니다. 이 튜토리얼에서는, 우리는 어떻게 스프링 MVC 응용 프로그램을 사용 하 여 파일 다운로드를 볼 수 있습니다. 이 자습서에서는 Spring MVC를 사용 하 여 파일을 다운로드 하는 방법을 보여 줍니다. 파일을 첨부 파일로 다운로드 하거나 브라우저 내에서 직접 파일을 볼 수 있습니다. 브라우저에 직접 파일을 표시 하려면 브라우저에서 지정 된 파일 형식을 지원 해야 합니다. 을 통해 httpentity 및 via filesystemresource를 통해 여러 가지 방법을 사용 하 여 파일 다운로드를 보여 줍니다. 또한 다운로드 중에 예외를 처리 하는 방법도 보여 줍니다. 같은 스프링 MVC 응용 프로그램에서 파일을 다운로드에 대 한 몇 가지 방법이 있습니다. 간단한 스프링 Mvc 컨트롤러는 파일을 다운로드 합니다.

아래 단계에 따라 샘플 “abc .pdf” 파일을 다운로드 합니다. 다음 뷰를 사용 하 여이 Spring MVC 다운로드 예제를 시연 한다. 페이지의 이러한 링크는 각 방법을 개별적으로 트리거하고 컨텐트-처리 속성에 따라 파일을 첨부 파일로 다운로드 하거나 브라우저에 직접 파일을 표시 합니다. 로컬 컴퓨터에 파일을 저장 하려면 다운로드 파일 링크를 클릭 합니다. 이제 직접 브라우저에서 URL을 공격 하려고 하면, 당신은이 오류를 얻을 것 이다: 우리가 파일을 검색 한 후, 우리는 파일이 존재 하는지 확인 하십시오. 파일이 없는 경우에는 파일을 throw 합니다. 코드에서 throw 할 수 있는 유일한 예외는 아닙니다. 는 파일이 outputstream에 쓰여질 때도 발생할 수 있습니다. 아래 예외 핸들러를 사용 하 여 두 예외 사항을 처리 합니다. 클래스에 주석 달기 @ControllerAdvice이 클래스는 전역 예외 처리기로 spring에 의해 등록 됩니다. @ExceptionHandler 주석은 예상 되는 예외와 함께 이러한 예외를 처리 합니다. 이러한 처리기 내에서 올바른 상태 코드와 지정 된 오류 메시지를 사용 하 여 예외를 다시 표시 합니다.

어떻게 하면 같은 다른 폴더에 있는 파일을 다운로드 하는 방법을 말해 줄 수 있는 파일을 작성 하기 전에 콘텐츠 형식, 내용-처리 및 콘텐츠 길이 헤더를 설정 해야 합니다 servlettstream 또는 파일을 처리기 메서드에서 리소스로 반환.