From 40233f2db14728cbfaaeba1dc180270daa40dbd8 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 21 Jun 2021 11:36:01 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/utils/ImageUtils.java                          |   62 +++++++++++++++++++++++++++++++
 src/main/java/com/xcong/excoin/common/system/controller/CommonController.java |   33 +++++++++++++---
 src/main/resources/application-app.yml                                        |    5 ++
 src/main/resources/application-test.yml                                       |    5 ++
 4 files changed, 97 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java b/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java
index bca5a3c..73a13af 100644
--- a/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java
+++ b/src/main/java/com/xcong/excoin/common/system/controller/CommonController.java
@@ -1,6 +1,7 @@
 package com.xcong.excoin.common.system.controller;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.xcong.excoin.common.contants.AppContants;
@@ -13,10 +14,7 @@
 import com.xcong.excoin.configurations.properties.AliOssProperties;
 import com.xcong.excoin.modules.blackchain.service.TrxUsdtUpdateService;
 import com.xcong.excoin.modules.platform.dao.SysExceptionDetailDao;
-import com.xcong.excoin.utils.MessageSourceUtils;
-import com.xcong.excoin.utils.OssUtils;
-import com.xcong.excoin.utils.RedisUtils;
-import com.xcong.excoin.utils.SmsUtils;
+import com.xcong.excoin.utils.*;
 import com.xcong.excoin.utils.mail.Sms106Send;
 import com.xcong.excoin.utils.mail.SmsSend;
 import com.xcong.excoin.utils.mail.SubMailSend;
@@ -27,14 +25,18 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.io.File;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.text.DateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -60,6 +62,12 @@
 
     @Resource
     private AliOssProperties aliOssProperties;
+
+    @Value("${file.storage.path}")
+    private String filePath;
+
+    @Value("${file.storage.url}")
+    private String fileUrl;
 
     @ApiOperation(value = "获取验证码接口", notes = "获取验证码通用接口")
     @GetMapping(value = "/verifyCode")
@@ -111,10 +119,21 @@
     @ApiOperation(value = "文件上次接口", notes = "文件上传")
     @PostMapping(value = "/uploadFileBase64")
     public Result uploadFileBase64(@RequestBody @Validated Base64UploadDto uploadDto) {
-        String imageName = "uploadeFile/image/" + System.currentTimeMillis() + IdUtil.simpleUUID() + AppContants.UPLOAD_IMAGE_SUFFIX;
-        boolean flag = OssUtils.uploadFileWithBase64(uploadDto.base64Str, imageName);
+//        String imageName = "uploadeFile/image/" + System.currentTimeMillis() + IdUtil.simpleUUID() + AppContants.UPLOAD_IMAGE_SUFFIX;
+//        boolean flag = OssUtils.uploadFileWithBase64(uploadDto.base64Str, imageName);
+
+        String imagesPath = filePath + "/" + DateUtil.format(new Date(), "yyyyMMdd");
+        File pathFile = new File(imagesPath);
+        if (pathFile.isDirectory()) {
+            pathFile.mkdirs();
+        }
+
+        String imageName = System.currentTimeMillis() + IdUtil.simpleUUID() + AppContants.UPLOAD_IMAGE_SUFFIX;
+
+        boolean flag = ImageUtils.base64ToImg(uploadDto.base64Str, imagesPath + "/" + imageName);
         if (flag) {
-            String url = aliOssProperties.getBucketName() + "/" + imageName;
+//            String url = aliOssProperties.getBucketName() + "/" + imageName;
+            String url = fileUrl + imageName;
             return Result.ok(MessageSourceUtils.getString("result_success_msg"), url);
         }
         return Result.fail(MessageSourceUtils.getString("uploadFile_controller_0001"));
diff --git a/src/main/java/com/xcong/excoin/utils/ImageUtils.java b/src/main/java/com/xcong/excoin/utils/ImageUtils.java
new file mode 100644
index 0000000..25d9ccc
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/utils/ImageUtils.java
@@ -0,0 +1,62 @@
+package com.xcong.excoin.utils;
+
+
+import cn.hutool.core.util.StrUtil;
+import sun.misc.BASE64Decoder;
+import sun.misc.BASE64Encoder;
+
+import java.io.*;
+
+public class ImageUtils {
+
+    public static boolean base64ToImg(String base64Str, String imgPath) {
+        // 图像数据为空
+        if (StrUtil.isBlank(base64Str)) {
+            return false;
+        }
+
+        BASE64Decoder decoder = new BASE64Decoder();
+        try {
+            // Base64解码
+            byte[] bytes = decoder.decodeBuffer(base64Str);
+            for (int i = 0; i < bytes.length; ++i) {
+                // 调整异常数据
+                if (bytes[i] < 0) {
+                    bytes[i] += 256;
+                }
+            }
+            // 生成jpeg图片
+            OutputStream out = new FileOutputStream(imgPath);
+            out.write(bytes);
+            out.flush();
+            out.close();
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
+
+    public static String imgToBase64(String imgPath) {
+        byte[] data = null;
+
+        // 读取图片字节数组
+        try {
+            InputStream in = new FileInputStream(imgPath);
+            data = new byte[in.available()];
+            in.read(data);
+            in.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        // 对字节数组Base64编码
+        BASE64Encoder encoder = new BASE64Encoder();
+        // 返回Base64编码过的字节数组字符串
+        return encoder.encode(data);
+    }
+
+
+    public static void main(String[] args) {
+        base64ToImg(imgToBase64("/Users/helius/Pictures/123.jpg"), "/Users/helius/Desktop/123.jpg");
+    }
+}
diff --git a/src/main/resources/application-app.yml b/src/main/resources/application-app.yml
index e641019..d891ec6 100644
--- a/src/main/resources/application-app.yml
+++ b/src/main/resources/application-app.yml
@@ -78,7 +78,10 @@
     password: yunding123
     publisher-confirm-type: correlated
 
-
+file:
+  storage:
+    path: /home/javaweb/webresource/images
+    url: http://download.topclouds.cc/images/
 #custom:
 #  rabbitmq:
 #    host: 120.27.238.55
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 4e3d2de..944d185 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -109,6 +109,11 @@
   block-job: true
   otc-job: true
 
+file:
+  storage:
+    path: /home/javaweb/webresource/images
+    url: http://120.27.238.55:8000/images/
+
 aliyun:
   oss:
     end-point: https://oss-cn-hangzhou.aliyuncs.com

--
Gitblit v1.9.1