스프링 파일 다운로드 경로

이름에서 알 수 있듯이이 클래스는/uploadFile 및/Auploadmultiplefiles Api에서 응답을 반환 하는 데 사용 됩니다. JPA, 최대 절전 모드 및 MySQL 데이터베이스를 사용한 스프링 부트 파일 업로드/다운로드 com. 예제. 다음 내용을 포함 하는 페이로드 패키지-다운로드 한 콘텐츠는 FileOutputStream에 배치 됩니다: 또 다른 고도로 IO 작업에 사용 되는 라이브러리는 아파치 커먼스 IO입니다. 우리는 Javadoc에서 일반 파일 조작 작업에 사용 되는 FileUtils 라는 유틸리티 클래스가 있다는 것을 볼 수 있습니다. 이제 파일을 업로드 하 고 다운로드 하기 위한 REST Api를 작성해 보겠습니다. 라는 새 컨트롤러 클래스를 만듭니다. 예를 들어 filedemo. 컨트롤러 패키지. 기본적으로 ClassPathResource는 스레드의 컨텍스트 클래스 로더와 기본 시스템 클래스 로더 사이에서 선택 하기 위한 일부 상용구를 제거 합니다. 컨트롤러는 당신이 보는 것 처럼 간단 합니다.

이제는 파일부보자. 클래스는 파일 시스템에 파일을 저장 하 고 검색 하는 데 FileStorageService를 사용 합니다. 업로드를 완료 한 후 응답 형식의 페이로드를 반환 합니다. 이러한 클래스를 하나씩 정의 해 보겠습니다. URL의 콘텐츠를 다운로드 하기 위해 사용 됩니다는 Readbytechannel 및 FileChannel 클래스입니다. 코드 줄 수를 낮추기 위해 Java 7에서 사용 가능한 Files 클래스를 사용할 수 있습니다. Files 클래스는 한 번에 모든 바이트를 읽은 다음 다른 파일에 복사 하는 메서드를 포함 합니다. 여기 당신이 그것을 사용할 수 있는 방법입니다: 모든 오른쪽 사람들! 이 문서에서는, 우리는 스프링 부팅으로 작성 된 REST Api를 통해 단일 뿐만 아니라 여러 파일을 업로드 하는 방법을 배웠습니다. 우리는 또한 봄 부팅에 파일을 다운로드 하는 방법을 배웠습니다. 마지막으로 javascript를 통해 Api를 호출 하 여 파일을 업로드 하는 코드를 작성 했습니다. 당신이 볼 수 있듯이 우리는 URL 개체를 사용 하 여 연결을 열고 다음을 통해 그것을 읽고는 BufferedInputStreamReader 개체입니다.

내용을 바이트로 읽고 FileOutputStream을 사용 하 여 로컬 디렉터리의 파일에 복사 합니다. URL에서 읽은 바이트를 로컬 파일에 쓰기 위해 FileOutputStream 클래스에서 write () 메서드를 사용 합니다 .이 자습서에서는 Spring을 사용 하 여 클래스 경로에 있는 파일의 내용을 액세스 하 고 로드 하는 다양 한 방법을 볼 수 있습니다. 클라이언트에 정적 파일을 제공 하는 것은 다양 한 방법으로 수행 할 수 있으며, 스프링 컨트롤러를 사용 하는 것이 최선의 선택이 아닐 수도 있습니다. 각 HttpreFileChannel Body 부분을 메모리에 누적 하는 대신, 로컬 파일에 바이트를 직접 쓰기 위해를 사용 합니다. GetBodyByteBuffer () 메서드를 사용 하 여 ByteBuffer를 통해 본문 부분 콘텐츠에 액세스 합니다. 참고로 위의 예외 클래스에 @ResponseStatus (HttpStatus가 아님)를 주석으로 처리 했습니다. 이렇게 하면이 예외가 throw 되 면 스프링 부팅이 404 찾을 수 없음 상태로 응답 합니다. 우리가 사용 하 게 될 두 번째 클래스는 BufferedInputStreamReader 및 FileOutputStream입니다.

이러한 클래스는 각각 파일에서 읽고 쓰는 데 사용 됩니다. 스프링 부트 CLI를 사용 하 여 응용 프로그램을 생성 해 보겠습니다. 터미널을 실행 하 고 응용 프로그램을 생성 하는 다음 명령을 입력-아파치 커먼즈 IO를 사용 하 여 주어진 URL에서 파일을 다운로드 우리는 패키지의 FileUtils 클래스가 필요 합니다. 다음과 같은 파일을 다운로드 하는 데 필요한 코드 한 줄만 있습니다 .이 컨트롤러에는 두 개의 파일이 포함 됩니다. 한 파일은 응용 프로그램 (내부 리소스)에 내부 이며 다른 파일은 응용 프로그램 외부의 파일 시스템에 있습니다. 프로젝트의 외부 파일 경로를 변경 해야 합니다.

Comments are closed.