Postagens populares

sábado, 5 de junho de 2010

MimeType no Java: no pain!

Quando houve necessidade de verificar o MimeType de um arquivo no Java, pensei que seria tranquilo. Engano!

Muitas pessosa tem  dificuldade com isto, logo descobri ao pesquisar o assunto. Muitos utilizam bibliotecas de terceiros, para fazer algo, pensava eu, tão trivial. Bem, já devia saber, Java e Trivial são antonimos!

Bem, depende, na verdade é fácil, eu não sei se existe algum problema com a implementação (não sei porque até onde pesquisei, quase ninguém conhecia a solução desta maneira) ou se é por falta de informação do pessoal, mas é simples sim:

MimetypesFileTypeMap m = new MimetypesFileTypeMap();
String mimeType = m.getContentType(file);

onde file = instancia de java.io.File

É isto aí: para os mimes que utilizei até agora, ele detecta certinho.

Há!

2 comentários:

  1. Sei que estou revivendo um post MUITO antigo.
    Mas gostaria de saber se esse método identifica por exemplo um arquivo .EXE renomeado para .TXT como aplication ou como plain/text

    ResponderExcluir
  2. Olá! Conforme o manual do Java, é provável que detecte como plain/text. O manual do java 6 diz:

    This class extends FileTypeMap and provides data typing of files via their file extension. It uses the .mime.types format.

    MIME types file search order:

    The MimetypesFileTypeMap looks in various places in the user's system for MIME types file entries. When requests are made to search for MIME types in the MimetypesFileTypeMap, it searches MIME types files in the following order:

    Programmatically added entries to the MimetypesFileTypeMap instance.
    The file .mime.types in the user's home directory.
    The file /lib/mime.types.
    The file or resources named META-INF/mime.types.
    The file or resource named META-INF/mimetypes.default (usually found only in the activation.jar file).

    MIME types file format:

    # comments begin with a '#'
    # the format is
    # for example:
    text/plain txt text TXT
    # this would map file.txt, file.text, and file.TXT to
    # the mime type "text/plain"

    Espero ter ajudado!

    ResponderExcluir

Comenta aí galera, vamos debater os assuntos!

Magazine Luiza