From a62b9f8df546d9f47396d7001ed4ba8701de60f1 Mon Sep 17 00:00:00 2001
From: ruibaby <i@ryanc.cc>
Date: Sat, 23 Jun 2018 15:22:00 +0800
Subject: [PATCH] =?UTF-8?q?:alien:=20=E4=BF=AE=E6=94=B9=E5=9B=BE=E7=89=87?=
 =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=8E=8B=E7=BC=A9=E6=96=B9=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pom.xml                                       |  7 +++++++
 src/main/java/cc/ryanc/halo/Application.java  |  3 +++
 .../admin/AttachmentController.java           | 21 +++++++------------
 .../templates/admin/admin_theme-editor.ftl    |  2 +-
 4 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/pom.xml b/pom.xml
index bc5dd83b2..1c17ab8de 100755
--- a/pom.xml
+++ b/pom.xml
@@ -156,6 +156,13 @@
 			<version>4.0.1</version>
 		</dependency>
 
+		<!-- 图片操作 -->
+		<dependency>
+			<groupId>net.coobird</groupId>
+			<artifactId>thumbnailator</artifactId>
+			<version>0.4.8</version>
+		</dependency>
+
 	</dependencies>
 
 	<repositories>
diff --git a/src/main/java/cc/ryanc/halo/Application.java b/src/main/java/cc/ryanc/halo/Application.java
index b6c7c1eff..abb078ad0 100755
--- a/src/main/java/cc/ryanc/halo/Application.java
+++ b/src/main/java/cc/ryanc/halo/Application.java
@@ -1,5 +1,6 @@
 package cc.ryanc.halo;
 
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@@ -7,9 +8,11 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  * @author RYAN0UP
  * SpringBoot启动类
  */
+@Slf4j
 @SpringBootApplication
 public class Application {
 	public static void main(String[] args) {
 		SpringApplication.run(Application.class, args);
+		log.info("Halo started at http://localhost:8090");
 	}
 }
diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/AttachmentController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/AttachmentController.java
index 542f15e5d..cccc9a657 100755
--- a/src/main/java/cc/ryanc/halo/web/controller/admin/AttachmentController.java
+++ b/src/main/java/cc/ryanc/halo/web/controller/admin/AttachmentController.java
@@ -11,6 +11,7 @@ import cc.ryanc.halo.utils.HaloUtils;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.extra.servlet.ServletUtil;
 import lombok.extern.slf4j.Slf4j;
+import net.coobird.thumbnailator.Thumbnails;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -131,7 +132,7 @@ public class AttachmentController {
      * @param request request
      * @return Map<String   ,   Object></>
      */
-    public Map<String, Object> uploadAttachment(MultipartFile file, HttpServletRequest request) {
+    private Map<String, Object> uploadAttachment(MultipartFile file, HttpServletRequest request) {
         Map<String, Object> result = new HashMap<String, Object>();
         if (!file.isEmpty()) {
             try {
@@ -151,25 +152,18 @@ public class AttachmentController {
                 String fileName = nameWithOutSuffix+"."+fileSuffix;
                 file.transferTo(new File(mediaPath.getAbsoluteFile(), fileName));
 
+                //压缩图片
+                Thumbnails.of(new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(fileName).toString()).size(256,256).keepAspectRatio(false).toFile(new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(nameWithOutSuffix).append("_small.").append(fileSuffix).toString());
+
                 //保存在数据库
                 Attachment attachment = new Attachment();
                 attachment.setAttachName(fileName);
                 attachment.setAttachPath(new StringBuffer("/upload/").append(HaloUtils.YEAR).append("/").append(HaloUtils.MONTH).append("/").append(fileName).toString());
-                //判断图片大小,如果长宽都小于500,则保存原始图片路径
-                BufferedImage sourceImg = ImageIO.read(new FileInputStream(mediaPath.getPath() + "/" + fileName));
-                if (sourceImg.getWidth() < 500 || sourceImg.getHeight() < 500) {
-                    attachment.setAttachSmallPath(new StringBuffer("/upload/").append(HaloUtils.YEAR).append("/").append(HaloUtils.MONTH).append("/").append(fileName).toString());
-                } else {
-                    attachment.setAttachSmallPath(new StringBuffer("/upload/").append(HaloUtils.YEAR).append("/").append(HaloUtils.MONTH).append("/").append(nameWithOutSuffix).append("_small.").append(fileSuffix).toString());
-                    //剪裁图片
-                    HaloUtils.cutCenterImage(new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(fileName).toString(), new StringBuffer(mediaPath.getAbsolutePath()).append("/").append(nameWithOutSuffix).append("_small.").append(fileSuffix).toString(), 500, 500, fileSuffix);
-                }
-
+                attachment.setAttachSmallPath(new StringBuffer("/upload/").append(HaloUtils.YEAR).append("/").append(HaloUtils.MONTH).append("/").append(nameWithOutSuffix).append("_small.").append(fileSuffix).toString());
                 attachment.setAttachType(file.getContentType());
                 attachment.setAttachSuffix(new StringBuffer(".").append(fileSuffix).toString());
                 attachment.setAttachCreated(DateUtil.date());
                 attachmentService.saveByAttachment(attachment);
-
                 updateConst();
                 log.info("上传文件[" + fileName + "]到[" + mediaPath.getAbsolutePath() + "]成功");
                 logsService.saveByLogs(
@@ -180,7 +174,8 @@ public class AttachmentController {
                 result.put("message", "上传成功!");
                 result.put("url", attachment.getAttachPath());
             } catch (Exception e) {
-                log.error("未知错误:{0}", e.getMessage());
+                log.error("未知错误:", e.getMessage());
+                e.printStackTrace();
                 result.put("success", 0);
                 result.put("message", "上传失败!");
             }
diff --git a/src/main/resources/templates/admin/admin_theme-editor.ftl b/src/main/resources/templates/admin/admin_theme-editor.ftl
index 517281388..d0466242f 100644
--- a/src/main/resources/templates/admin/admin_theme-editor.ftl
+++ b/src/main/resources/templates/admin/admin_theme-editor.ftl
@@ -77,10 +77,10 @@
                                                         <#break>
                                                         <#case "gallery.ftl">
                                                         图库页面
+                                                        <#break >
                                                         <#case "module/options.ftl">
                                                         设置选项
                                                         <#break >
-                                                        <#break>
                                                     </#switch>
                                                 </td>
                                             </tr>