Estoy buscando entre las bibliotecas estándar (como apache commons, jax, jboss, javax) una interfaz o enumeración que enumere los valores de todo el tipo mime estándar (también conocido como tipo de contenido).
Esta interfaz no debe estar gravada con demasiada profundidad con otras clases que dificulten la inclusión de todo el grupo como código fuente gwt.
por ejemplo
interface ContentType{
String JSON = "Application/JSON";
blah ... blah ...
}
o,
enum ContentType{
JSON("Application/JSON"),
blah ... blah ...
}
java
gwt
mime-types
content-type
guava
Beato Geek
fuente
fuente
Respuestas:
Biblioteca de guayaba
Tenemos una guayaba clase para esto:
com.google.common.net.MediaType
.Fue lanzado con Guava 12 como se indica en el código fuente y en el número 823 . Las fuentes también están disponibles.
fuente
com.google.common.net.MediaType
, yaMediaType.toString()
que no es una constante de tiempo de compilación y, por lo tanto, no se puede usar en anotacionesDe https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html :
fuente
Si está utilizando Spring Framework , existe una clase MediaType para tipos de contenido comunes:
fuente
APPLICATION_ZIP
Ahora también está la clase
org.apache.http.entity.ContentType
del paqueteorg.apache.httpcomponents.httpcore
, comenzando desde 4.2 en adelante.fuente
application/pdf
tipo mime. Desafortunadamente, esta clase no tiene una constante para pdf :(javax.ws.rs.core.MediaType
de JAX-RSfuente
Java 7 al rescate!
Puede pasar el archivo o el nombre del archivo y devolverá el tipo MIME.
http://docs.oracle.com/javase/7/docs/api/javax/activation/MimetypesFileTypeMap.html
fuente
¡También hay una
MediaType
clase de anotaciones androidan en caso de que quieras usar con Android! Ver aquí .fuente
Si está en Android, tiene varias opciones, donde solo la primera es una especie de "enumeración":
HTTP
(que ha quedado en desuso en API 22), por ejemploHTTP.PLAIN_TEXT_TYPE
oMimeTypeMap
, por ejemplofinal String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
Ver también
FileProvider.getType()
.URLConnection
que proporciona los siguientes métodos:guessContentTypeFromStream(InputStream is)
guessContentTypeFromName(String url)
getFileNameMap()
Por ejemplo
fuente
Como se señaló en una respuesta anterior, puede usar
javax.ws.rs.core.MediaType
que tiene las constantes requeridas.También quería compartir un enlace realmente genial y práctico que encontré que da una referencia a todas las constantes Javax en un solo lugar: https://docs.oracle.com/javaee/7/api/constant-values.html .
fuente
Resolví esto con una clase estática:
fuente
Como ya se publicó en la respuesta anterior, los tipos MIME más comunes se configuran en un servidor web. Por ejemplo, en tomcat conf / tenemos web.xml con el siguiente MIME configurado:
Cree un escucha de inicio que se active cuando se inicie la aplicación web y analice este archivo XML y cree las ENUMS para usted y lo vincule al contexto de servlet para compartirlo en sentido descendente.
fuente