yz
2021-03-17 353d3489eb7096c176ec5595f87efa2c9d82c52c
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/MyUtil.java
@@ -6,6 +6,8 @@
import cn.hutool.core.lang.Dict;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Decoder;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -106,8 +108,8 @@
        if (file.getSize() <= 0) {
            throw new FebsException("上传的文件大小需要大于0kb");
        }
        if (file.getSize() > 50 * 1024* 1024) {
            throw new FebsException("上传的文件大于50M");
        if (file.getSize() > 200 * 1024* 1024) {
            throw new FebsException("上传的文件大于200M");
        }
        if (!FileUtil.exist(uploadPpath)) {
            FileUtil.mkdir(uploadPpath);
@@ -117,13 +119,87 @@
        String suffix = "";
        if (fileName.indexOf(".") > 0) {
            //后缀
            suffix = fileName.substring(fileName.indexOf("."), fileName.length());
            suffix = fileName.substring(fileName.indexOf("."));
        }
        //生成新的名字
        String newName = nextIdStr + suffix;
        //上传
        file.transferTo(new File(uploadPpath + newName));
        return Dict.create().set("fileName",fileName).set("suffix",suffix).set("newName",newName);
    }
    /**
     *      对字节数组字符串进行Base64解码并生成图片
      */
    public static boolean generateImage(String imgStr,String url) {
        if (imgStr == null) {
            // 图像数据为空
            return false;
        }
        imgStr = imgStr.split(",")[1];
                BASE64Decoder decoder = new BASE64Decoder();
        try {
            // Base64解码
            byte[] b = decoder.decodeBuffer(imgStr);
            for (int i = 0; i < b.length; ++i) {
                // 调整异常数据
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            // 生成jpeg图片
            String imgFilePath = url;
            OutputStream out = new FileOutputStream(imgFilePath);
            out.write(b);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            return false;
        }
    }
    /**
     * 将base64字符串,生成文件
     */
    public static File convertBase64ToFile(String fileBase64String, String filePath, String fileName) {
        BufferedOutputStream bos = null;
        FileOutputStream fos = null;
        File file = null;
        try {
            File dir = new File(filePath);
            if (!dir.exists() && dir.isDirectory()) {//判断文件目录是否存在
                dir.mkdirs();
            }
            BASE64Decoder decoder = new BASE64Decoder();
            byte[] bfile = decoder.decodeBuffer(fileBase64String);
            file = new File(filePath + File.separator + fileName);
            fos = new FileOutputStream(file);
            bos = new BufferedOutputStream(fos);
            bos.write(bfile);
            return file;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            if (bos != null) {
                try {
                    bos.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
            if (fos != null) {
                try {
                    fos.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
    }
}