yjryu / KERIS star
류윤주 류윤주 2023-11-10
231110 이세현 썸네일이미지 추가
@db7e9ad8dac0f772d2d31207ca9daf4a96893256
pom.xml
--- pom.xml
+++ pom.xml
@@ -204,6 +204,13 @@
             <version>1.4.7</version>
         </dependency>
 
+        <!-- Thumbnail 관련 라이브러리 -->
+        <dependency>
+            <groupId>net.coobird</groupId>
+            <artifactId>thumbnailator</artifactId>
+            <version>0.4.13</version>
+        </dependency>
+
 
 
 
server/main/java/kr/co/takensoft/keris/post/service/impl/PostServiceImpl.java
--- server/main/java/kr/co/takensoft/keris/post/service/impl/PostServiceImpl.java
+++ server/main/java/kr/co/takensoft/keris/post/service/impl/PostServiceImpl.java
@@ -11,6 +11,7 @@
 import kr.co.takensoft.keris.commonFile.dao.CommonFileDAO;
 import kr.co.takensoft.keris.post.dao.PostDAO;
 import kr.co.takensoft.keris.post.service.PostService;
+import net.coobird.thumbnailator.Thumbnails;
 import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -19,10 +20,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 /**
  *  게시글 관련 서비스 로직 입니다.
@@ -173,6 +171,24 @@
                 fileUpload.setFileStatus(CommonFile.FileStatus.BEFORE_INSERT);
                 fileUpload.setCheckMessage(new CheckMessage(true, "파일 정보 조회 성공"));
                 fileUtil.absoluteFileCreate(fileUpload, fileOne);
+
+                // 썸네일 파일명
+                String thumbnailName = "thumbnail_" + saveFileName + '.' + fileExtension;
+                //홍보뉴스의 경우에만 썸네일생성
+                int bbs_id = Integer.parseInt(params.get("bbs_id").toString());
+                if (bbs_id == 1) {
+                    //jpg는 지원안함
+                    List<String> supportedFormats = Arrays.asList("jpeg", "png", "bmp", "gif", "wbmp");
+                    if(supportedFormats.contains(fileExtension.toLowerCase())) {
+                        try {
+                            Thumbnails.of(absolutePath + "/" + saveFileName + '.' + fileExtension)
+                                    .size(350, 230)
+                                    .toFile(absolutePath + "/" + thumbnailName);
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
             } catch (Exception e) {
                 fileUpload.setCheckMessage(new CheckMessage(false, "파일 정보 조회 에러", e.getMessage()));
             }
Add a comment
List