如何通过图像的 Base64 编码字符串识别文件类型
2022-09-03 15:21:56
我得到一个文件,它是Base64编码的字符串作为图像。但我认为其中的内容包含有关png,jpeg等文件类型的信息。我该如何检测?有没有图书馆可以帮助我在这里?
我得到一个文件,它是Base64编码的字符串作为图像。但我认为其中的内容包含有关png,jpeg等文件类型的信息。我该如何检测?有没有图书馆可以帮助我在这里?
如果你想得到哑剧类型使用这个
const body = {profilepic:"data:image/png;base64,abcdefghijklmnopqrstuvwxyz0123456789"};
let mimeType = body.profilepic.match(/[^:]\w+\/[\w-+\d.]+(?=;|,)/)[0];
===========================================
如果你想只得到它的类型,如(png,jpg)等
const body2 = {profilepic:"data:image/png;base64,abcdefghijklmnopqrstuvwxyz0123456789"};
let mimeType2 = body2.profilepic.match(/[^:/]\w+(?=;|,)/)[0];
我已经解决了使用的问题mimeType = URLConnection.guessContentTypeFromStream(inputstream);
{ //Decode the Base64 encoded string into byte array
// tokenize the data since the 64 encoded data look like this "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAKAC"
String delims="[,]";
String[] parts = base64ImageString.split(delims);
String imageString = parts[1];
byte[] imageByteArray = Base64.decode(imageString );
InputStream is = new ByteArrayInputStream(imageByteArray);
//Find out image type
String mimeType = null;
String fileExtension = null;
try {
mimeType = URLConnection.guessContentTypeFromStream(is); //mimeType is something like "image/jpeg"
String delimiter="[/]";
String[] tokens = mimeType.split(delimiter);
fileExtension = tokens[1];
} catch (IOException ioException){
}
}