文字列はbase64でエンコードされたかどうかを確認する方法は?

親愛なるSirojiddinov:

私は、HTML IMG SRC base64でエンコードされた形式でかどうか、私のJavaの春のバックエンドにあるを確認したいです。それがある場合はBase64では、私がするだけで、デコード画像をエンコードし、そうでない場合、私はその後、私のサーバーに保存した画像のURLパスに基づいて、まずダウンロードします私のサーバーに保存します。私は、画像をダウンロードして画像復号機能を構築しました。しかし、base64でチェックを解決することはできません。私は文をチェックトライキャッチを使用しようとしましたが、私はそれはbase64でない場合はエラーを引く必要はありません。PS私はjava.util.Base64を使用しています

public boolean isBase64(String path) {
   try {
        Base64.getDecoder().decode(path);

    } catch(IllegalArgumentException e) {   
    }
}
edwgiz:

あなたは正確な値を受け取った場合<img src="..." />、属性、それは持つべきデータURL形式を

簡単な正規表現は、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);
        }
    }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=363488&siteId=1