From 983bdb5b89932b38d08a11ad1eed6ea89d1597e1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期一, 29 一月 2024 10:07:31 +0800
Subject: [PATCH] 更新

---
 assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java |   63 ++++++++++++++++++++++---------
 1 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java
index 25f68bd..c957622 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java
@@ -7,10 +7,9 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
+import sun.misc.BASE64Decoder;
 
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
+import java.io.*;
 import java.util.Date;
 import java.util.UUID;
 
@@ -22,6 +21,9 @@
 
     @Override
     public UploadObjectVO uploadFile(MultipartFile file) {
+        if(file==null){
+            throw new ApiException("上传文件不能为空");
+        }
         UploadObjectVO uploadObjectVO=doUpload(file);
         return uploadObjectVO;
     }
@@ -41,8 +43,10 @@
         return true;
     }
 
+    @Override
     public UploadObjectVO doUpload(MultipartFile file){
-        String filename=file.getOriginalFilename();
+        String originName=file.getOriginalFilename();
+        String filename=originName;
         String subfix=filename.substring(filename.lastIndexOf("."));
         filename= UUID.randomUUID().toString().replace("-","")+subfix;
         String systemDir=System.getProperty("user.dir");
@@ -62,24 +66,47 @@
         }
         filePath=filePath.replace("\\","/");
         UploadObjectVO uploadObjectVO=new UploadObjectVO().setFilename(filename)
-                .setPath(filePath);
+                .setPath(filePath).setOriginName(originName);
         return uploadObjectVO;
     }
 
-
-    public boolean checkImageType(String subfix){
-        if(".jpg".equalsIgnoreCase(subfix)||
-                ".jpeg".equalsIgnoreCase(subfix)||
-                ".png".equalsIgnoreCase(subfix)||
-                ".bmp".equalsIgnoreCase(subfix)||
-                ".tif".equalsIgnoreCase(subfix)||
-                ".jfif".equalsIgnoreCase(subfix)||
-                ".webp".equalsIgnoreCase(subfix)||
-                ".gif".equalsIgnoreCase(subfix)
-        ){
-            return true;
+    @Override
+    public UploadObjectVO doUpload(String imageBase64) {
+        String originName="";
+        String filename=originName;
+        String subfix=".png";
+        filename= UUID.randomUUID().toString().replace("-","")+subfix;
+        String systemDir=System.getProperty("user.dir");
+        String dateStr= DateUtil.format(new Date(),"yyyyMMdd");
+        String filePath=uploadPath+File.separator+dateStr;
+        File dirFile=new File(filePath);
+        if(!dirFile.exists()){
+            dirFile.mkdirs();
         }
-        return false;
+        filePath=filePath+File.separator+filename;
+        BASE64Decoder decoder = new BASE64Decoder();
+        try {
+            // Base64解码
+            byte[] bytes = decoder.decodeBuffer(imageBase64);
+            for (int i = 0; i < bytes.length; ++i) {
+                if (bytes[i] < 0) {// 调整异常数据
+                    bytes[i] += 256;
+                }
+            }
+            // 生成jpeg图片
+            OutputStream out = new FileOutputStream(systemDir+File.separator+filePath);
+            out.write(bytes);
+            out.flush();
+            out.close();
+        } catch (FileNotFoundException e) {
+            throw new ApiException("找不到文件");
+        } catch (IOException e) {
+            throw new ApiException("发生错误,请联系管理员");
+        }
+        filePath=filePath.replace("\\","/");
+        UploadObjectVO uploadObjectVO=new UploadObjectVO().setFilename(filename)
+                .setPath(filePath).setOriginName(originName);
+        return uploadObjectVO;
     }
 
 }

--
Gitblit v1.9.2