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