☭DEVELOPER/#2 웹개발(자바기반 풀스택)

[BACKEND]Spring 파일 업로드와 썸네일 이미지 생성

조반짝 2023. 11. 8. 18:09
728x90
반응형

pom.xml 에 아래 내용 추가

      <!-- 다중 파일 업로드에 필요한 라이브러리를 설치하기 위해
           pom.xml을 작성합니다.  -->
      <dependency>
         <groupId>commons-fileupload</groupId>
         <artifactId>commons-fileupload</artifactId>
         <version>1.2.1</version>
       </dependency>
   
      <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
         <version>1.4</version>
      </dependency>  
      
      <!-- 썸네일 이미지 -->
      <dependency>
         <groupId>net.coobird</groupId> 
         <artifactId>thumbnailator</artifactId> 
         <version>0.4.8</version> 
      </dependency>
      
      <!-- 아래는 기존에 있는거, 위에는 새로 추가한 라이브러리 입니다! -->

자바 버전 변경

servlet-context.xml 에 추가

멀티파트 리졸버 : 여러개의 파일을 한꺼번에 업로드할 수 있는 기능

<!-- 멀티파트 리졸버 -->
   <!-- 스프링의 CommonsMultipartResolver 클래스를 이용하면 여러 개의 파일을
                 한꺼번에 업로드할 수 있습니다. -->
    <!-- servlet-context.xml 파일에서 CommonsMultipartResolver 클래스를
         multipartResolver 빈으로 설정합니다. -->
    <beans:bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
       <!-- CommonsMultipartResolver 클래스의
        maxUploadSize 속성은 최대로 업로드가 가능한 파일의 크기를 설정합니다. -->
       <beans:property name="maxUploadSize" value="52428800" />
       <!-- maxInMemorySize 속성은 디스크에 임시 파일을 생성하기 전
              메모리에 보관할 수 있는 최대 바이트 크기를 설정합니다. -->
       <beans:property name="maxInMemorySize" value="1000000" />
       <!-- defaultEncoding 속성은 전달되는 매개변수의 인코딩을 설정합니다. -->
       <beans:property name="defaultEncoding" value="utf-8" />
    </beans:bean>

 

home.js

경로 복사해서 넣기

// 파일 다운로드 컨트롤러인 FileDownloadController 클래스를 작성합니다.
// 우리는 버퍼 기능을 이용해서 빠르게 브라우저로 이미지 파일을 전송 처리 합니다.

 

// 파일 업로드 컨트롤러를 구현합니다. 파일과 매개변수를 같이 전송하므로 Map을 사용합니다.
// 매개변수의 name/value를 다시 map의 key/value로 저장합니다.
// 파일 이름을 ArrayList에 저장한 후 다시 map에 key/value로 저장합니다.

 <!-- enctype = "multipart/form-data"의 의미는 파일 업로드 시
        enctype은 반드시 multipart/form-data로 설정해야 합니다. -->


썸네일 이미지 생성

기본셋팅완료

// 원본 이미지에 대해 썸네일 이미지 파일을 생성한 후 다운로드할 수 있도록 합니다.
// Thumbnails.of(image).size(50,50).outputFormat("png").toFile(thumbnail)은
// 가로와 세로 크기가 50픽셀인 png 썸네일 이미지를 생성한 후 파일로 저장하는 구문입니다.

// 쇼핑몰의 상품 목록 이미지 같은 경우, 썸네일 이미지 파일을 따로 생성할
   // 필요 없이 썸네일 이미지를 바로 다운로드하면 훨씬 빨리 표시할 수 있습니다.
      
   // 썸네일 이미지 바로 출력하기 : 위와 달리 앞서와는 C:\spring\image_repo2\thumbnail 폴더에 썸네일 이미지는 생성되지 않음

728x90
반응형