2017-03-17 4 views
1

Zeit zu bestimmen, wodurch ich verwendeWie richtigen MIME-Typ

MimetypesFileTypeMap mimeTypesMap = new MimetypesFileTypeMap(); 
String mimeType = mimeTypesMap.getContentType(logAttachmentFile.getFilePath()); 

Dies funktioniert gut mit .jpg zum Beispiel, aber die meisten anderen Dateitypen zurück, wie application/octet-stream (.xls, .docx, .png) es ist mir unmöglich, die Datei anzuzeigen. Gibt es eine Möglichkeit, den richtigen Dateityp ohne eine Drittanbieterbibliothek zu bestimmen? Wenn nicht, was ist die beste Wahl?

+1

Maintan zusätzlich Ihre eigene Zuordnung, Protokollierung nicht zugeordnete Typen. Oder Sie könnten vielleicht überprüfen, ob ein Dateityp von einer Anwendung registriert wird, hässlich. –

+0

Mögliches Duplikat von [MIME-Typ einer Datei in Java abrufen] (http://stackoverflow.com/questions/51438/getting-a-files-mime-type-in-java) – beat

Antwort

0

Ich glaube, gute Option ist Apache Tika. Es hat ziemlich große Auswahl erkannter Formate: http://tika.apache.org/1.16/formats.html

Auch verwendet er nicht nur den Namen der Datei, sondern auch das Bytes in ihm (wenn die Datei sehr groß ist, können Sie nur einigen Präfix der Datei angeben). Und Sie können es ziemlich leicht anpassen.