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