Estou procurando nas bibliotecas padrão (como apache commons, jax, jboss, javax) uma interface ou enumeração que lista os valores de todo o tipo mime padrão (também conhecido como tipo de conteúdo).
Essa interface não deve ser sobrecarregada com outras classes que dificultariam a inclusão de todo o grupo como código-fonte gwt.
por exemplo
interface ContentType{
String JSON = "Application/JSON";
blah ... blah ...
}
ou,
enum ContentType{
JSON("Application/JSON"),
blah ... blah ...
}
java
gwt
mime-types
content-type
guava
Blessed Geek
fonte
fonte
Respostas:
GoiabaBiblioteca de
Temos uma classe Guava para isso:
com.google.common.net.MediaType
.Foi lançado com o Guava 12, conforme indicado no código-fonte e na edição 823 . Fontes também estão disponíveis.
fonte
com.google.common.net.MediaType
, comoMediaType.toString()
não é uma constante de tempo de compilação e, portanto, não pode ser usado nas anotaçõesEm https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html :
fonte
Se você estiver usando o Spring Framework , haverá uma classe MediaType para tipos de conteúdo comuns:
fonte
APPLICATION_ZIP
Agora também há a classe
org.apache.http.entity.ContentType
from packageorg.apache.httpcomponents.httpcore
, iniciando em 4.2.fonte
application/pdf
tipo mime. Infelizmente, esta classe não possui uma constante para o pdf :(javax.ws.rs.core.MediaType
de JAX-RSfonte
Java 7 para o resgate!
Você pode passar o arquivo ou o nome do arquivo e ele retornará o tipo MIME.
http://docs.oracle.com/javase/7/docs/api/javax/activation/MimetypesFileTypeMap.html
fonte
Há também uma
MediaType
classe nas anotações do Android , caso você queira usar com o Android! Veja aqui .fonte
Se você está no Android, tem várias opções, sendo que apenas a primeira é uma espécie de "enum":
HTTP
(que foi descontinuado na API 22), por exemploHTTP.PLAIN_TEXT_TYPE
ouMimeTypeMap
, por exemplofinal String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
Veja também
FileProvider.getType()
.URLConnection
que fornece os seguintes métodos:guessContentTypeFromStream(InputStream is)
guessContentTypeFromName(String url)
getFileNameMap()
Por exemplo
fonte
Conforme indicado na resposta acima, você pode usar
javax.ws.rs.core.MediaType
as constantes necessárias.Eu também queria compartilhar um link muito legal e útil que achei que fornece uma referência a todas as constantes Javax em um só lugar - https://docs.oracle.com/javaee/7/api/constant-values.html .
fonte
Eu resolvi isso com uma classe estática:
fonte
Como já publicado na resposta anterior, os tipos MIME mais comuns são configurados em um servidor da web. Por exemplo, no tomcat conf /, temos o web.xml com o seguinte MIME configurado:
Crie um ouvinte de inicialização que entre em ação quando o aplicativo Web for iniciado e analise esse arquivo XML, crie o ENUMS para você e vincule-o ao contexto do servlet para compartilhar a jusante.
fonte