spring controller 파일 다운로드

파일 다운로드 요청을 처리하기 위해 스프링 컨트롤러 클래스에서 빠른 Java 프로그램을 작성하자와 같은 다른 폴더에 파일을 다운로드하는 방법을 말해 줄 수 있습니다. 다음 코드를 추가합니다. 다운로드 링크를 클릭하면 브라우저가 특정 파일을 다운로드하도록 요청합니다. 안녕하세요, 어떻게 각각에 대 한 대화 상자로 저장 하 고 폴더에 자동으로 저장 하지 않고 여러 파일을 다운로드할 수 있습니다 우리는 또한 HttpEntity를 사용할 수 있습니다. 이번에는 HttpEntity를 반환합니다. 우리는 HttpHeaders를 사용하기 전에와 같은 헤더를 설정하지만 첨부 파일 대신 인라인을 사용하여 브라우저에 파일을 직접 표시하도록 지시합니다. 파일을 다운로드하는 것은 매우 간단하며 다음 단계가 포함됩니다. 다음 response.getOutputStream()에 이진 스트림으로 파일을 작성합니다. 끝에 response.flush()를 수행해야 합니다.

또한 길이를 계산하기 위해 전체 파일을 읽지 않으려면 이전에 저장하는 것이 좋습니다. 입력StreamResource리소스에 대한 문서를 확인하십시오. 이 자습서에서는 스프링 MVC를 사용하여 파일을 다운로드하는 방법을 보여 주시겠습니다. 파일을 첨부 파일로 다운로드하거나 브라우저 내에서 파일을 직접 볼 수 있습니다. 브라우저에서 직접 파일을 표시하려면 브라우저에서 지정된 파일 형식을 지원해야 합니다. 우리는 여러 방법을 사용하여 파일 다운로드를 시연: HttpServletResponse를 통해, HttpEntity를 통해 및 FileSystemResource를 통해. 또한 다운로드하는 동안 예외를 처리하는 방법도 보여 드립니다. 첫 번째 간단한 해결책은 컨트롤러 메서드에서 @ResponseBody 어칭을 사용하여 메서드에서 반환되는 개체가 HTTP 응답 본문에 직접 마샬링되어야 함을 나타내는 것입니다. 당신이 그것을 보고 싶다면, 당신은 인라인으로 설정해야합니다. 파일을 검색한 후 파일이 있는지 검사합니다. 파일이 없는 경우 FileNotFoundException을 throw합니다.

코드가 던질 수 있는 유일한 예외는 아닙니다. IOException은 파일이 OutputStream에 기록될 때도 발생할 수 있습니다. 아래의 예외 처리기를 사용하여 두 예외를 모두 처리합니다. @ControllerAdvice 클래스에 추가하면 이 클래스는 봄까지 전역 예외 처리기로 등록됩니다. @ExceptionHandler 예상된 예외와 함께 해당 예외를 처리 합니다. 이러한 처리기 내에서 올바른 상태 코드와 지정된 오류 메시지를 사용하여 예외를 다시 트러코딩합니다. 내가 빨리 생각할 수있는 것은, PDF를 생성하고 코드에서 웹 앱 / 다운로드 / .pdf에 저장하고 이 빠른 기사에서 HttpServletRequest를 사용하여이 파일로 앞으로 보내면 스프링 컨트롤러에서 이미지 또는 파일을 반환하는 간단한 문제를 살펴보는 것입니다. 그러나, 때로는 컨트롤러 경로 필요 – 그리고 우리가이 빠른 기사에서 에 초점을 맞출 거 야. 필요한 Java 파일을 만들어 보겠습니다. SRC / 메인 / 자바 폴더, 새로운 -> 패키지를 마우스 오른쪽 버튼으로 클릭합니다. 타타, 당신이 좋은 일을하고 있기를 바랍니다.

관련 파일이 코드에 이미 있습니다. 프로젝트를 다운로드하고 JCG 끝에서 추가 정보가 필요한 경우 알려주십시오. 파일이 다운로드되었지만 콘텐츠의 텍스트가 누락되었지만, 응용 프로그램이 배포된 후 모든 공백은 응답엔터티를 사용하여 URL-http://localhost:8080/spring-mvc/download 사용하여 JSP 페이지에 액세스할 수 있습니다 – 컨트롤러의 처리기 메서드에서 응답 에 래핑된 InputStreamResource로 파일을 반환할 수 있습니다. 이 컨트롤러에는 두 개의 파일이 포함됩니다. 하나의 파일은 응용 프로그램 내부(내부 리소스)이고 다른 파일은 응용 프로그램 외부의 파일 시스템에 있습니다. 프로젝트의 외부 파일 경로를 변경해야 합니다. 데모 목적으로만 경로에 추가 경로 변수(내부/외부)가 포함되어 있습니다. 스프링 FileCopyUtils 유틸리티 클래스를 사용하여 소스에서 대상으로 스트림을 복사합니다.