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