스프링 부트 파일 다운로드
이 기사에서는 스프링 부팅 REST로 파일과 이미지를 업로드하고 다운로드하는 다양한 방법에 대해 이야기하고 Postman으로 테스트했습니다. 여러 파일을 다운로드하는 동안 모든 파일을 단일 단위로 압축한 다음 스프링 부팅 서버에서 다운로드하는 구현도 제공합니다. 또한 파일을 업로드하는 동안 양식 데이터로 여분의 매개 변수를 보내는 방법을 살펴봅니다. 바닐라 자바 스크립트 대신 jQuery를 사용하는 것을 선호하는 경우 jQuery.ajax() 방법을 사용하여 파일을 업로드 할 수 있습니다 . @ConfigurationProperties(접두사 = “파일”) 부호는 응용 프로그램 시작 시 해당 작업을 수행하고 접두사 파일이 있는 모든 속성을 POJO 클래스의 해당 필드에 바인딩합니다. 브라우저에서 URL을 발사하면 파일이 다운로드됩니다. http://localhost:8080/downloadFile 파일 업로드 및 다운로드는 모든 엔터프라이즈 응용 프로그램이 통합하려는 핵심 기능 중 하나입니다. 이 문서에서는 스프링 부팅으로 Java에서 파일을 업로드하고 다운로드하는 방법을 볼 수 있습니다. 제일 먼저! Multipart 파일 업로드를 사용하도록 Spring Boot 응용 프로그램을 구성하고 업로드할 수 있는 최대 파일 크기를 정의해 보겠습니다. 또한 업로드된 모든 파일이 저장되는 디렉토리도 구성합니다. 이 경우 파일은 양식 데이터를 사용하여 전송되고 스프링 컨트롤러 나머지에서 다중 파트 파일로 검색됩니다. 다중 파트 요청에서 수신된 업로드된 파일의 표현입니다.
아래 구현에서는 입력 스트림에서 파일로 모든 바이트를 복사합니다. 기본적으로 대상 파일이 이미 있거나 기호 링크인 경우 복사본이 실패합니다. 따라서 표준 복사 옵션을 REPLACE_EXISTING 사용하고 있습니다. Spring Boot에는 @ConfigurationProperties라는 멋진 기능이 있어 application.properties 파일에 정의된 속성을 POJO 클래스에 자동으로 바인딩할 수 있습니다. 이제 파일을 업로드하고 다운로드하기 위한 REST API를 작성해 보겠습니다. com.example.filedemo.controller 패키지 내부에 FileController라는 새 컨트롤러 클래스를 만듭니다. 이 프로세스가 완료되면 응답은 파일의 다운로드 URL이 됩니다. 우리는 잠시 파일 다운로드에 대해 설명합니다. 여기서는 java.util.zip 패키지의 ZipOutputStream을 사용하여 .zip 파일을 만듭니다.
다음은 예입니다. 다음은 이를 위한 REST 구현입니다. 구현은 로컬 파일 시스템에 저장하는 대신 파일을 저장하는 DB 호출이 있는 경우를 제외하고는 위의 논리와 유사합니다. 파일 다운로드는 2단계 프로세스입니다. 첫째, 우리는 URL 양식에 있는 모든 파일을 나열해야 하고 사용자가 링크를 클릭하면 실제 파일을 보냅니다. 메인 클래스 src / main / java / com / 예제 / fileDemo / FileDemoApplication.java를 열고 @EnableConfigurationProperties 개의 어노미를 다음과 같이 추가하십시오 – 이 기사에서는 Spring Boot가 Java에서 파일을 업로드하고 다운로드하는 방법을 쉽게 구현할 수 있습니다. 따라서 원시 파일을 반환하려면 APPLICATION_OCTET_STREAM_VALUE 사용하면 백 엔드 API가 정상적으로 작동합니다. 이제 사용자가 웹 앱에서 파일을 업로드하고 다운로드할 수 있도록 프런트 엔드 코드를 작성해 보겠습니다.
이 코드는 service 클래스 개체를 만든 후 실행됩니다. 이 init 메서드에서는 파일을 업로드하려는 디렉터리를 만들려고 합니다. 이 메서드는 스프링 컨트롤러에서 MultipartFile을 가져옵니다. 그런 다음 파일 이름이 업로드 디렉터리와 비교하여 확인되고 복사됩니다. UI에서 파일을 업로드할 때 위의 메서드가 시작됩니다. 스프링 컨트롤러는 MultipartFile을 수신한 다음 저장소 서비스 클래스로 전송됩니다. 여기서 우리는 응답에 대한 파일 콘텐츠를 작성하고 있습니다 (Java 7 이상) 파일 시스템에 파일을 저장하는 동안 예기치 않은 상황이 발생할 때 throw됩니다 – 우리의 코드는 웹 스타터 응용 프로그램 위에 내장되어 있습니다.