From 4c9dd5bd6fa03d1833e92452cb99a67afd375496 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期五, 08 三月 2024 08:52:10 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java |   48 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java b/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java
index 626e9cc..9d13698 100644
--- a/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java
+++ b/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java
@@ -20,12 +20,13 @@
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.multipart.commons.CommonsMultipartResolver;
 
+import javax.imageio.ImageIO;
+import javax.imageio.stream.ImageOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.*;
 import java.util.*;
 
 /**
@@ -92,7 +93,7 @@
     public static  FtpUtil ftp  = null;
 
     @ApiOperation(value = "涓婁紶鏂囦欢鍒癋TP")
-    @RequestMapping(method= RequestMethod.POST,value="api/uploadFtp.do")
+    @RequestMapping(method= RequestMethod.POST,value="api/uploadFtp.do",headers = "content-type=multipart/form-data")
     @ResponseBody
     public void uploadFtp(HttpServletRequest request, HttpServletResponse response, String folderCode) throws Exception {
         System.out.println("涓婁紶涓�");
@@ -111,7 +112,6 @@
             }else{
                 ftp.connect();
             }
-
             CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
             if (multipartResovler.isMultipart(request)) {
                 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
@@ -122,7 +122,7 @@
                     String date = DateUtil.getNowShortDate();
                     String fName =  date+"/"+ UUID.randomUUID()+".jpg";
                     String fileName = folder+fName;
-                    boolean r = ftp.uploadInputstream(is,fileName);
+                    boolean r = ftp.uploadInputstream(compressImg(is),fileName);
                     if(r){
                         context.put("success", true);
                         context.put("code", 200);
@@ -131,6 +131,7 @@
                         fileJSON.put("halfPath", fName);
                         fileJSON.put("prefixPath", prefixPath);
                         fileJSON.put("folder", folder);
+                        fileJSON.put("addr", prefixPath+fileName);
                         context.put("data",fileJSON);
                         context.put("message","璇锋眰鎴愬姛");
                         writerJson(response, context);
@@ -149,6 +150,39 @@
     }
 
 
+    public InputStream compressImg(InputStream is){
+        try {
+            long originalFileSize = is.available();
+            BufferedImage originalImage = ImageIO.read(is);
+
+            double compressionRatio = Math.sqrt((double)originalFileSize / (200 * 1024.0));
+
+            if(compressionRatio >1){
+                int compressedWidth = (int) (originalImage.getWidth() / compressionRatio);
+                int compressedHeight = (int) (originalImage.getHeight() / compressionRatio);
+
+                BufferedImage compressedImage = new BufferedImage(compressedWidth, compressedHeight, originalImage.getType());
+                Graphics2D graphics = compressedImage.createGraphics();
+                graphics.drawImage(originalImage, 0, 0, compressedWidth, compressedHeight, null);
+                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+                ImageOutputStream imOut = ImageIO.createImageOutputStream(byteArrayOutputStream);
+                ImageIO.write(compressedImage, "JPEG", imOut);
+                InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
+                graphics.dispose();
+                return inputStream;
+            }else{
+                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+                ImageOutputStream imOut = ImageIO.createImageOutputStream(byteArrayOutputStream);
+                ImageIO.write(originalImage, "JPEG", imOut);
+                InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
+                return inputStream;
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return is;
+    }
+
 
     public void upload(HttpServletRequest request, HttpServletResponse response, String folder, String bucketName,
         String access_id, String access_key, String resourcePath, String endpoint) throws Exception {

--
Gitblit v1.9.3