|
|
@@ -1,9 +1,12 @@
|
|
|
package org.springblade.common.utils;
|
|
|
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
+import cn.hutool.core.lang.func.Func;
|
|
|
+import cn.hutool.core.util.URLUtil;
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.aliyuncs.utils.IOUtils;
|
|
|
import com.drew.imaging.ImageMetadataReader;
|
|
|
import com.drew.imaging.ImageProcessingException;
|
|
|
import com.drew.metadata.Metadata;
|
|
|
@@ -13,22 +16,21 @@ import com.google.common.collect.Maps;
|
|
|
import org.apache.commons.imaging.ImageReadException;
|
|
|
import org.apache.commons.imaging.Imaging;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
-import org.springblade.common.constant.CommonConstant;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.awt.*;
|
|
|
+import java.awt.color.ColorSpace;
|
|
|
+import java.awt.color.ICC_ColorSpace;
|
|
|
import java.awt.geom.AffineTransform;
|
|
|
import java.awt.image.AffineTransformOp;
|
|
|
import java.awt.image.BufferedImage;
|
|
|
+import java.awt.image.ColorConvertOp;
|
|
|
import java.io.*;
|
|
|
-import java.lang.reflect.InvocationTargetException;
|
|
|
-import java.lang.reflect.Method;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.net.*;
|
|
|
import java.time.LocalDate;
|
|
|
import java.util.*;
|
|
|
import java.util.List;
|
|
|
-import java.util.concurrent.ConcurrentHashMap;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -52,17 +54,6 @@ import net.coobird.thumbnailator.Thumbnails;
|
|
|
|
|
|
public class CommonUtil {
|
|
|
private static final double INCH_TO_CM = 2.54;
|
|
|
- private static Method paramCacheMethod = null;
|
|
|
- private static Object paramCacheObj = null;
|
|
|
- static {
|
|
|
- try {
|
|
|
- Class<?> cls = Class.forName("org.springblade.system.cache.ParamCache");
|
|
|
- paramCacheObj = cls.newInstance();
|
|
|
- paramCacheMethod = cls.getMethod("getValue", String.class);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
public static Boolean checkBigDecimal(Object value) {
|
|
|
try {
|
|
|
@@ -155,7 +146,7 @@ public class CommonUtil {
|
|
|
System.out.println("----前-------"+urlStr);
|
|
|
int lastIndex = urlStr.lastIndexOf("/") + 1;
|
|
|
String fileName = urlStr.substring(lastIndex);
|
|
|
- urlStr = urlStr.substring(0, lastIndex) + URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
|
|
|
+ urlStr = urlStr.substring(0, lastIndex) + URLEncoder.encode(fileName, "UTF-8").replace("+", "%20");
|
|
|
//获取OSS文件流
|
|
|
URL url = new URL(urlStr);
|
|
|
URLConnection conn = url.openConnection();
|
|
|
@@ -177,27 +168,7 @@ public class CommonUtil {
|
|
|
urlStr = replaceOssUrl(urlStr);
|
|
|
int lastIndex = urlStr.lastIndexOf("/") + 1;
|
|
|
String fileName = urlStr.substring(lastIndex);
|
|
|
- urlStr = urlStr.substring(0, lastIndex) + URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
|
|
|
- //获取OSS文件流
|
|
|
- URL url = new URL(urlStr);
|
|
|
- URLConnection conn = url.openConnection();
|
|
|
-
|
|
|
- conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
|
|
|
- return conn.getInputStream();
|
|
|
- } catch (Exception e) {
|
|
|
- System.out.println("-----后------"+urlStr);
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
- public static InputStream getOSSInputStream(String urlStr, int type) {
|
|
|
- try {
|
|
|
- System.out.println("----前-------"+urlStr);
|
|
|
- if (type == 1) {
|
|
|
- urlStr = replaceOssUrl(urlStr);
|
|
|
- }
|
|
|
- int lastIndex = urlStr.lastIndexOf("/") + 1;
|
|
|
- String fileName = urlStr.substring(lastIndex);
|
|
|
- urlStr = urlStr.substring(0, lastIndex) + URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
|
|
|
+ urlStr = urlStr.substring(0, lastIndex) + URLEncoder.encode(fileName, "UTF-8").replace("+", "%20");
|
|
|
//获取OSS文件流
|
|
|
URL url = new URL(urlStr);
|
|
|
URLConnection conn = url.openConnection();
|
|
|
@@ -1027,79 +998,9 @@ public class CommonUtil {
|
|
|
} else {
|
|
|
url = url.replace("https://", "http://").replace("183.247.216.148", "152.168.2.15").replace(":9000//", ":9000/");
|
|
|
}
|
|
|
- } else {
|
|
|
- getNetUrl(url);
|
|
|
}
|
|
|
return url;
|
|
|
}
|
|
|
- public static String getCacheValue(String key){
|
|
|
- try {
|
|
|
- if (paramCacheMethod != null && paramCacheObj != null) {
|
|
|
- return (String) paramCacheMethod.invoke(paramCacheObj, key);
|
|
|
- }
|
|
|
- } catch (IllegalAccessException | InvocationTargetException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return "";
|
|
|
- }
|
|
|
- public static String getNetUrl(String fileUrl) {
|
|
|
- String filePath = getCacheValue(CommonConstant.SYS_LOCAL_URL);
|
|
|
- String sysFileNetUrl = getCacheValue(CommonConstant.SYS_FILE_NET_URL);
|
|
|
- String sysIsOnline = getCacheValue(CommonConstant.SYS_ISONLINE);
|
|
|
- if (filePath.isEmpty() || sysFileNetUrl.isEmpty() || sysIsOnline.isEmpty()) {
|
|
|
- return fileUrl;
|
|
|
- }
|
|
|
- String filePath2 = getSysLocalFileUrl(filePath, sysIsOnline);
|
|
|
- if(fileUrl.contains("aliyuncs.com") || fileUrl.contains("xinan1.zos.ctyun.cn") || fileUrl.contains("/mnt/sdc/Users/hongchuangyanfa/Desktop/")){
|
|
|
- if(fileUrl.contains("/mnt/sdc/Users/hongchuangyanfa/Desktop/")){
|
|
|
- if(SystemUtils.isWindows() || SystemUtils.isMacOs()){
|
|
|
- filePath2 = filePath;
|
|
|
- }else{
|
|
|
- return sysFileNetUrl + fileUrl.replaceAll("//", "/").replaceAll(filePath2, "");
|
|
|
- }
|
|
|
- }else{
|
|
|
- return fileUrl;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if("20".equals(sysIsOnline)){
|
|
|
- filePath2 = filePath;
|
|
|
- }
|
|
|
- }
|
|
|
- String s1 = fileUrl.replaceAll("//", "/").replace("///","/");
|
|
|
- filePath2= filePath2.replaceAll("//","/").replaceAll("///","/");
|
|
|
- String s2= s1.replaceAll(filePath2, "");
|
|
|
- return sysFileNetUrl + s2;
|
|
|
- }
|
|
|
- public static String getSysLocalFileUrl(String filePath, String sysIsOnline) {
|
|
|
- if (sysIsOnline.equals("1")) { //正式环境
|
|
|
- if (SystemUtils.isMacOs()) {
|
|
|
- filePath = "/Users/hongchuangyanfa/Desktop/";
|
|
|
- } else if (SystemUtils.isWindows()) {
|
|
|
- filePath = "C://upload//";
|
|
|
- }
|
|
|
- } else if (sysIsOnline.equals("2")) { //109测试环境
|
|
|
- if (SystemUtils.isMacOs()) {
|
|
|
- filePath = "/www/wwwroot/Users/hongchuangyanfa/Desktop/";
|
|
|
- } else if (SystemUtils.isWindows()) {
|
|
|
- filePath = "C://upload//";
|
|
|
- }
|
|
|
- } else if (sysIsOnline.equals("20")) { //183
|
|
|
- if (SystemUtils.isLinux()) {
|
|
|
- filePath = "/home/www/wwwroot/Users/hongchuangyanfa/Desktop/";
|
|
|
- } else if (SystemUtils.isMacOs()) {
|
|
|
- filePath = "/Users/hongchuangyanfa/Desktop/";
|
|
|
- } else if (SystemUtils.isWindows()) {
|
|
|
- filePath = "C://upload//";
|
|
|
- }
|
|
|
- } else { //本地环境
|
|
|
- if (SystemUtils.isMacOs()) {
|
|
|
- filePath = "/Users/hongchuangyanfa/Desktop/";
|
|
|
- } else if (SystemUtils.isWindows()) {
|
|
|
- filePath = "C://upload//";
|
|
|
- }
|
|
|
- }
|
|
|
- return filePath;
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
* webp文件转字节数组
|