안녕하세요, 당신은 스프링 MVC 나머지 백엔드 및 angularjs 프론트 엔드와 비슷한 예를 들어 주십시오 수 있습니까? 다음 뷰를 사용 하 여이 Spring MVC 다운로드 예제를 시연 한다. 페이지의 이러한 링크는 각 방법을 개별적으로 트리거하고 컨텐트-처리 속성에 따라 파일을 첨부 파일로 다운로드 하거나 브라우저에 직접 파일을 표시 합니다. 첫 번째 링크를 clink. 내부 파일 [이는 PDF] 브라우저에 표시 되어야 합니다, 콘텐츠 처리 덕분에: 인라인. 인라인을 사용 하면 브라우저에서 콘텐츠를 표시할 수 있는 경우 브라우저에 표시 됩니다. inputstream을 관리 하는 대신 우리는 또한 스프링 MVC가 filesystemresource를 사용한 스트림을 처리 하도록 할 수 있습니다. 리소스 클래스에는 여러 가지 구현이 있습니다. 사용 되는 기술: Java SE 1.8 | 봄 4.3.9 | 메 이븐 네트웍 스 3.3.9 | 아파치 톰캣 7.0.47 | 이클립스 네온. 3 “다운로드 abc .pdf” 링크를 클릭, 그것은 다른 이름으로 저장 대화 상자가 열립니다. 이 컨트롤러에서는 두 개의 파일이 포함 됩니다. 하나의 파일이 응용 프로그램 내부 (리소스 내부) 이며 다른 파일은 응용 프로그램 외부의 파일 시스템에 있습니다. 프로젝트의 외부 파일 경로를 변경 해야 합니다.

논증 목적만을 위해, 우리는 경로에서 여분 경로 가변 (내부/외부)를 포함 했다. 우리는 소스에서 대상으로 스트림을 복사 하기 위해 스프링 filecoputils 유틸리티 클래스를 사용 하 고 있습니다. 이 게시물에서, 어떻게 이미지, 우편, pdf 등 파일을 다운로드 하는 스프링 MVC 응용 프로그램을 개발 하기 위해 웹 서버에서 로컬 컴퓨터로 표시 됩니다. 수정 된 파일은 referer 헤더가 null이 아닌 경우에만 브라우저로 파일이 전송 됩니다. 이렇게 하면 브라우저 또는 다른 도메인에서 들어오는 요청에 url을 입력 하 여 이미지를 직접 다운로드 하지 못하게 됩니다. 이 게시물은 어떻게 스프링 MVC 4를 사용 하 여 파일 다운로드를 구현 하는 방법을 보여줍니다. 우리는 파일 시스템에서 뿐만 아니라 외부 파일을 응용 프로그램 내부 파일에 대 한 파일 다운로드를 볼 수 있습니다. 가 야 해 보자. 파일을 검색 한 후 파일이 있는지 검사 합니다.

파일이 없는 경우에는 파일을 throw 합니다. 코드에서 throw 할 수 있는 유일한 예외는 아닙니다. 는 파일이 outputstream에 쓰여질 때도 발생할 수 있습니다. 아래 예외 핸들러를 사용 하 여 두 예외 사항을 처리 합니다. 클래스에 주석 달기 @ControllerAdvice이 클래스는 전역 예외 처리기로 spring에 의해 등록 됩니다. @ExceptionHandler 주석은 예상 되는 예외와 함께 이러한 예외를 처리 합니다. 이러한 처리기 내에서 올바른 상태 코드와 지정 된 오류 메시지를 사용 하 여 예외를 다시 표시 합니다. 응답. settheader (“내용-처리”, “인라인; 파일 이름 = “+ 파일 이름);//with ` 인라인 ` 브라우저는 특정 내용 (im게이지, PDF, 텍스트,..)에 대 한 broswer에 콘텐츠를 바로 표시 하려고 합니다.

다른 콘텐츠 형식의 파일을 직접 다운로드 됩니다. 안녕하세요, 저는 데이터베이스에 저장 된 경로를 검색 하 여 파일을 다운로드 하려면 위의 몇 가지 코드를 변경 했어요. 하지만 다운로드 버튼을 클릭 하면 액세스가 거부 됩니다. 어떻게이 문제를 해결할 수 있습니까? 아래 코드는 나를 위해 생성 하 고 텍스트 파일을 다운로드 일했다. 간단한 스프링 Mvc 컨트롤러는 파일을 다운로드 합니다. 아래 단계에 따라 샘플 “abc .pdf” 파일을 다운로드 합니다. 많은 시간, 다른 웹사이트는 직접 링크로 그들의 웹사이트에 있는 당신의 파일을 교차할 지도 모른다. 당신은 그것을 허용 하 고 싶지 않을 수도 있습니다.

다른 도메인에서 오는 모든 다운로드 요청을 허용 하지 않으려면 referer 헤더에 도메인 이름이 포함 되어 있는지 확인할 수 있습니다. 를 사용 하 여, 컨트롤러의 처리기 메서드에서 파일을 inputstream 리소스로 반환할 수 있습니다. mvn tomcat7: 실행 (이 명령은 자동으로 임베디드 톰캣과 전쟁 파일을 배포 실행) 그것은 서블릿 3.x의 애플 리 케이 션, 봄을 기반으로 주석 기반 구성입니다. 그래서, 아니 웹 .xml, 아니 spring. xml을.