|
|
|
@ -9,6 +9,7 @@ import java.io.UnsupportedEncodingException;
|
|
|
|
|
import java.net.MalformedURLException; |
|
|
|
|
import java.net.URL; |
|
|
|
|
import java.net.URLEncoder; |
|
|
|
|
import java.nio.charset.Charset; |
|
|
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.Map; |
|
|
|
@ -156,22 +157,48 @@ public class WebUtils {
|
|
|
|
|
String currentUrl = request.getParameter("currentUrl"); |
|
|
|
|
String urlPath = request.getParameter("urlPath"); |
|
|
|
|
if (StringUtils.isNotBlank(url)) { |
|
|
|
|
return new String(Base64Utils.decodeFromString(url), StandardCharsets.UTF_8); |
|
|
|
|
return decodeBase64String(url); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(currentUrl)) { |
|
|
|
|
return new String(Base64Utils.decodeFromString(currentUrl), StandardCharsets.UTF_8); |
|
|
|
|
return decodeBase64String(currentUrl); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(urlPath)) { |
|
|
|
|
return new String(Base64Utils.decodeFromString(urlPath), StandardCharsets.UTF_8); |
|
|
|
|
return decodeBase64String(urlPath); |
|
|
|
|
} |
|
|
|
|
if (StringUtils.isNotBlank(urls)) { |
|
|
|
|
urls = new String(Base64Utils.decodeFromString(urls), StandardCharsets.UTF_8); |
|
|
|
|
urls = decodeBase64String(urls); |
|
|
|
|
String[] images = urls.split("\\|"); |
|
|
|
|
return images[0]; |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 将 Base64 字符串解码,默认使用 UTF-8 |
|
|
|
|
* @param source 原始 Base64 字符串 |
|
|
|
|
* @return decoded string |
|
|
|
|
*/ |
|
|
|
|
public static String decodeBase64String(String source) { |
|
|
|
|
return decodeBase64String(source, StandardCharsets.UTF_8); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 将 Base64 字符串使用指定字符集解码 |
|
|
|
|
* @param source 原始 Base64 字符串 |
|
|
|
|
* @param charsets 字符集 |
|
|
|
|
* @return decoded string |
|
|
|
|
*/ |
|
|
|
|
public static String decodeBase64String(String source, Charset charsets) { |
|
|
|
|
/* |
|
|
|
|
* url 传入的参数里加号会被替换成空格,导致解析出错,这里需要把空格替换回加号 |
|
|
|
|
* 有些 Base64 实现可能每 76 个字符插入换行符,也一并去掉 |
|
|
|
|
* https://github.com/kekingcn/kkFileView/pull/340
|
|
|
|
|
*/ |
|
|
|
|
return new String(Base64Utils.decodeFromString( |
|
|
|
|
source.replaceAll(" ", "+").replaceAll("\n", "") |
|
|
|
|
), charsets); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 获取 url 的 host |
|
|
|
|
* @param urlStr url |
|
|
|
|