type txt octet getcontenttype from content application java image mime-types

txt - ¿La mejor manera de determinar el tipo mime de un archivo en java?



get mime type from file java (3)

El siguiente enlace tiene una buena comparación de varias formas de obtener el tipo Mime de un archivo (incluye bibliotecas como: Apache Tika, JMimeMagic, etc. con algún código nativo también): http://www.rgagnon.com/javadetails/java-0487.html

Esta pregunta ya tiene una respuesta aquí:

Es curioso cuál es la mejor forma en Java para obtener el tipo mime de un archivo. En realidad debería inspeccionar el archivo porque los nombres de archivos no son un indicador preciso.

Actualmente estoy usando lo siguiente que parece ser muy impredecible

is = new BufferedInputStream(new FileInputStream(fileName)); String mimeType = URLConnection.guessContentTypeFromStream(is); if(mimeType == null) { throw new IOException("can''t get mime type of image"); }


La URLConnection#guessContentTypeFromStream() o ...FromName() es realmente lo mejor que puede obtener en la API estándar de Java SE. Sin embargo, existen bibliotecas de terceros como jMimeMagic que funcionan mejor que los URLConnection#guessXXX() .

String mimeType = Magic.getMagicMatch(file, false).getMimeType();

Esto soporta una gama más amplia de tipos mime.


public static String getContentType(String filename) { String g = URLConnection.guessContentTypeFromName(filename); if( g == null) { g = MimetypesFileTypeMap.getDefaultFileTypeMap().getContentType(filename); } return g; }