Helius
2021-06-21 40233f2db14728cbfaaeba1dc180270daa40dbd8
modify
3 files modified
1 files added
105 ■■■■■ changed files
src/main/java/com/xcong/excoin/common/system/controller/CommonController.java 33 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/utils/ImageUtils.java 62 ●●●●● patch | view | raw | blame | history
src/main/resources/application-app.yml 5 ●●●● patch | view | raw | blame | history
src/main/resources/application-test.yml 5 ●●●●● patch | view | raw | blame | history
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"));
src/main/java/com/xcong/excoin/utils/ImageUtils.java
New file
@@ -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");
    }
}
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
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