2014-09-10 3 views
0

Я получаю файл, который является закодированной строкой в ​​качестве изображения. Но я думаю, что содержание этого содержит информацию о типе файла, например png, jpeg и т. Д. Как я могу это обнаружить? Есть ли библиотека, которая может мне помочь?Как определить тип файла по кодировке Base64 изображения

+0

Заканчивать Wotsig.org http://www.wotsit.org/list.asp?fc=1 – Sparky

+1

Имейте взгляд на ответы здесь: https://stackoverflow.com/questions/51438/getting-a-files-mime-type-in-java –

+0

Вы имеете в виду, как вы декодируете строку Base64? –

ответ

2

я решил мою проблему с помощью 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){ 

    } 
} 
-1

Этот код использует регулярное выражение для извлечения типа пантомимы из Base64 строки. Хотя он написан на JavaScript, вы можете попробовать реализовать одно и то же в Java.

function base64MimeType(encoded) { 
    var result = null; 

    if (typeof encoded !== 'string') { 
    return result; 
    } 

    var mime = encoded.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/); 

    if (mime && mime.length) { 
    result = mime[1]; 
    } 

    return result; 
} 

Использование:

var encoded = 'data:image/png;base64,iVBORw0KGgoAA...5CYII='; 

console.log(base64Mime(encoded)); // "image/png" 
console.log(base64Mime('garbage')); // null 

Источник: miguelmota/base64mime (GitHub)

Смежные вопросы