我想检查 HTML img src 是否采用 base64 编码格式,或者不在我的 java spring 后端中。如果它是 Base64 编码的,那么我将解码图像并保存到我的服务器,如果不是,我将首先根据图像 URL 路径下载,然后保存到我的服务器。我已经构建了下载图像和解码图像的功能。但无法解析base64检查。我尝试使用 try catch 检查语句,但如果它不是 base64,我不需要捕获错误。 P.S 我正在使用 java.util.Base64
public boolean isBase64(String path) {
try {
Base64.getDecoder().decode(path);
} catch(IllegalArgumentException e) {
}
}
最佳答案
如果您通过 <img src="..." />
收到准确的值属性那么它应该有 Data URL format
简单的正则表达式可以确定 URL 是数据还是常规。在java中它看起来像
private static final Pattern DATA_URL_PATTERN = Pattern.compile("^data:image/(.+?);base64,\\s*", Pattern.CASE_INSENSITIVE);
static void handleImgSrc(String path) {
if (path.startsWith("data:")) {
final Matcher m = DATA_URL_PATTERN.matcher(path);
if (m.find()) {
String imageType = m.group(1);
String base64 = path.substring(m.end());
// decodeImage(imageType, base64);
} else {
// some logging
}
} else {
// downloadImage(path);
}
}
关于java - 如何检查字符串是否是base64编码的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59703733/