Saya mencari di antara pustaka standar (seperti apache commons, jax, jboss, javax) untuk antarmuka atau enum yang mencantumkan nilai dari semua tipe mime standar (alias tipe konten).
Antarmuka ini tidak boleh dibebani dengan terlalu dalam dengan kelas-kelas lain yang akan menyulitkan untuk menyertakan seluruh kelompok sebagai kode sumber gwt.
sebagai contoh
interface ContentType{
String JSON = "Application/JSON";
blah ... blah ...
}
atau,
enum ContentType{
JSON("Application/JSON"),
blah ... blah ...
}
java
gwt
mime-types
content-type
guava
Geek yang Terberkati
sumber
sumber
Jawaban:
Perpustakaan jambu biji
Kami memiliki jambu kelas untuk ini:
com.google.common.net.MediaType
.Itu dirilis dengan Guava 12 seperti yang dinyatakan dalam kode sumber dan dalam Masalah 823 . Sumber juga tersedia.
sumber
com.google.common.net.MediaType
, karenaMediaType.toString()
bukan konstanta waktu kompilasi dan karena itu tidak dapat digunakan dalam anotasiDari https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html :
sumber
Jika Anda menggunakan Spring Framework maka ada kelas MediaType untuk tipe konten umum:
sumber
APPLICATION_ZIP
Sekarang juga ada kelas
org.apache.http.entity.ContentType
dari paketorg.apache.httpcomponents.httpcore
, mulai dari 4.2 sampai.sumber
application/pdf
tipe pantomim. Sayangnya, kelas ini tidak memiliki konstanta untuk pdf :(javax.ws.rs.core.MediaType
dari JAX-RSsumber
Java 7 untuk menyelamatkan!
Anda bisa meneruskan file atau nama file dan itu akan mengembalikan tipe MIME.
http://docs.oracle.com/javase/7/docs/api/javax/activation/MimetypesFileTypeMap.html
sumber
Ada juga
MediaType
kelas di androidannotations jika Anda ingin menggunakan dengan android! Lihat disini .sumber
Jika Anda menggunakan android, Anda memiliki beberapa pilihan, dengan yang pertama adalah semacam "enum":
HTTP
(yang sudah tidak digunakan lagi di API 22), misalnyaHTTP.PLAIN_TEXT_TYPE
atauMimeTypeMap
, misalnyafinal String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
Lihat juga
FileProvider.getType()
.URLConnection
yang menyediakan metode berikut:guessContentTypeFromStream(InputStream is)
guessContentTypeFromName(String url)
getFileNameMap()
Sebagai contoh
sumber
Seperti yang ditunjukkan oleh jawaban di atas, Anda dapat menggunakan
javax.ws.rs.core.MediaType
yang memiliki konstanta yang diperlukan.Saya juga ingin membagikan tautan yang sangat keren dan praktis yang saya temukan yang memberikan referensi ke semua konstanta Javax di satu tempat - https://docs.oracle.com/javaee/7/api/constant-values.html .
sumber
Saya menyelesaikan ini dengan kelas statis:
sumber
Seperti yang telah diposting di jawaban sebelumnya, tipe MIME yang paling umum dikonfigurasi di server web. Misalnya di tomcat conf / kami memiliki web.xml dengan konfigurasi MIME berikut:
Buat pendengar startup yang bekerja saat aplikasi web dimulai dan parsing file XML ini dan buat ENUMS untuk Anda dan ikat ke konteks servlet untuk berbagi downstream.
sumber