2011-10-21 28 views
82

Tôi đang tìm kiếm trong số các thư viện chuẩn (như commache commons, jax, jboss, javax) cho một giao diện hoặc enum liệt kê các giá trị của tất cả các loại mime tiêu chuẩn (aka content- kiểu).Giao diện/enum liệt kê các hằng số loại mime tiêu chuẩn

Giao diện này không nên bị vướng bận quá sâu với các lớp khác sẽ khiến việc đưa toàn bộ nhóm trở thành mã nguồn gwt trở nên khó khăn.

ví dụ

interface ContentType{ 
    String JSON = "Application/JSON"; 
    blah ... blah ... 
} 

hay,

enum ContentType{ 
    JSON("Application/JSON"), 
    blah ... blah ... 
} 
+1

Tôi cho rằng bạn đã thấy Apache Sling? http://sling.apache.org/site/mime-type-support-commonsmime.html –

Trả lời

50

Chúng tôi có Ổi Lớp học cho điều này: com.google.common.net.MediaType.

Nó được phát hành với số 12 Như đã nêu trong mã nguồn và trong Issue 823. Sources cũng khả dụng.

+0

Nếu bạn đang tìm ánh xạ kiểu mime với các phần mở rộng (như tôi), hãy kiểm tra [MimeTypes] (https://github.com/amr/mimetypes) mà tôi đã viết vài giờ trước khi cần. –

+5

Thật đáng tiếc là không có hằng số Chuỗi nào được định nghĩa trong 'com.google.common.net.MediaType', như' MediaType.toString() 'không phải là hằng số thời gian biên dịch và do đó không thể sử dụng trong chú thích –

+0

https: // docs .oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html –

-2

Như đã được đăng trong câu trả lời trước đó, loại MIME phổ biến nhất được cấu hình trong một máy chủ web. Ví dụ trong conf tomcat/chúng tôi có web.xml với sau đây cấu hình MIME:

<mime-mapping> 
     <extension>abs</extension> 
     <mime-type>audio/x-mpeg</mime-type> 
    </mime-mapping> 
    <mime-mapping> 
     <extension>ai</extension> 
     <mime-type>application/postscript</mime-type> 
    </mime-mapping> 
    <mime-mapping> 
     <extension>aif</extension> 
     <mime-type>audio/x-aiff</mime-type> 
    </mime-mapping> 
... 

Tạo listener khởi động mà đá trong khi ứng dụng web được bắt đầu và phân tích tập tin XML này và tạo ra sự đếm cho bạn và kết nối nó đến ngữ cảnh servlet để chia sẻ hạ lưu.

+2

Điều này nghe hoàn toàn phức tạp đối với một yêu cầu đơn giản như có một danh sách các mimetypes có sẵn. Hơn nữa, mimetypes sẽ không thay đổi nhiều, vậy tại sao bạn sẽ phân tích chúng lặp đi lặp lại? Đó là những gì enums và hằng số được cho. –

+0

Tại sao tái tạo bánh xe khi danh sách đã có trong máy chủ web. Tại sao hardcode một cái gì đó-chỉ cần viết một phân tích cú pháp xml đơn giản để đọc các giá trị và bộ nhớ cache nó một lần khi máy chủ web bắt đầu. Ngày mai, nếu bạn cần hỗ trợ kiểu MIME mới, máy chủ web của bạn cần phải được cập nhật và khởi động lại, cách tiếp cận phân tích cú pháp giúp trong các tình huống đó. Thay vì thay đổi ở nhiều nơi, chỉ cần thay đổi cấu hình máy chủ web. –

+0

Nếu bạn muốn hỗ trợ một loại mime mới, bạn sẽ có khả năng viết một số mã tùy chỉnh nào đó vì không có cách nào xử lý chung một mimetype mới. (Trừ khi bạn chỉ chuyển nó qua một hệ thống khác, trong trường hợp này bạn không cần phải phân tích cú pháp đó.) –

57

có lẽ một sự khởi đầu ở đây: http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/MediaType.html

staticjava.lang.String APPLICATION_ATOM_XML    "application/atom+xml" 
staticMediaType  APPLICATION_ATOM_XML_TYPE  "application/atom+xml" 
staticjava.lang.String APPLICATION_FORM_URLENCODED  "application/x-www-form-urlencoded" 
staticMediaType  APPLICATION_FORM_URLENCODED_TYPE "application/x-www-form-urlencoded" 
staticjava.lang.String APPLICATION_JSON     "application/json" 
staticMediaType  APPLICATION_JSON_TYPE   "application/json" 
staticjava.lang.String APPLICATION_OCTET_STREAM   "application/octet-stream" 
staticMediaType  APPLICATION_OCTET_STREAM_TYPE "application/octet-stream" 
staticjava.lang.String APPLICATION_SVG_XML    "application/svg+xml" 
staticMediaType  APPLICATION_SVG_XML_TYPE   "application/svg+xml" 
staticjava.lang.String APPLICATION_XHTML_XML   "application/xhtml+xml" 
staticMediaType  APPLICATION_XHTML_XML_TYPE  "application/xhtml+xml" 
staticjava.lang.String APPLICATION_XML     "application/xml" 
staticMediaType  APPLICATION_XML_TYPE    "application/xml" 
staticjava.lang.String MEDIA_TYPE_WILDCARD    The value of a type or subtype wildcard: "*" 
staticjava.lang.String MULTIPART_FORM_DATA    "multipart/form-data" 
staticMediaType  MULTIPART_FORM_DATA_TYPE   "multipart/form-data" 
staticjava.lang.String TEXT_HTML      "text/html" 
staticMediaType  TEXT_HTML_TYPE     "text/html" 
staticjava.lang.String TEXT_PLAIN      "text/plain" 
staticMediaType  TEXT_PLAIN_TYPE     "text/plain" 
staticjava.lang.String TEXT_XML       "text/xml" 
staticMediaType  TEXT_XML_TYPE     "text/xml" 
staticjava.lang.String WILDCARD       "*/*" 
staticMediaType  WILDCARD_TYPE     "*/*" 
+0

https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html –

36

Nếu bạn đang sử dụng Spring Framework sau đó là một lớp MediaType với nhiều loại nội dung phổ biến:

MediaType.TEXT_HTML 
    MediaType.TEXT_PLAIN 
    MediaType.TEXT_XML 
    MediaType.APPLICATION_JSON 
    MediaType.IMAGE_JPEG 
    ... 
+3

Điều này làm việc tốt cho tôi nhưng tôi cần sử dụng phần MediaType.foo_VALUE. Mỗi lớp có một _VALUE tương ứng là String. – Jazzepi

+0

Tôi đã yêu cầu, innterface/eunum không nên được đóng gói quá sâu với các lớp khác, điều đó sẽ làm cho nó không thể được sử dụng trong GWT. GWT yêu cầu mã nguồn không phải là mã byte, bởi vì GWTis là một trình chuyển đổi từ Java sang JavaScript. Khung công tác Spring không thể sử dụng được ở phía trình duyệt của GWT. –

11

javax.ws.rs.core.MediaType từ JAX-RS

+0

https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html –

13

Hiện nay, cũng là lớp org.apache.http.entity.ContentType từ gói org.apache.httpcomponents.httpcore, bắt đầu từ 4.2 trở lên.

+0

Cảm ơn, nhưng javadoc cho lớp đó nói rằng nó đã được thêm vào trong v4.2. Tôi có thể xác minh rằng nó không có trong v4.0.1, đó là những gì tôi đang mắc kẹt với bây giờ. –

4

Ngoài ra còn có một lớp MediaType trong androidannotations trong trường hợp bạn muốn sử dụng với Android! Xem here.

1

Nếu bạn đang ở trên android bạn có nhiều sự lựa chọn, mà chỉ là người đầu tiên là một loại "enum":

Ví dụ

@Override 
public String getType(Uri uri) { 
    return URLConnection.getFileNameMap().getContentTypeFor(
      uri.getLastPathSegment()); 
} 
0

Tôi đã giải quyết vấn đề này với một lớp tĩnh:

@SuppressWarnings("serial") 
public class MimeTypes { 

    private static final HashMap<String, String> mimeTypes; 

    static { 
     mimeTypes = new HashMap<String, String>() { 
      { 
       put(".323", "text/h323"); 
       put(".3g2", "video/3gpp2"); 
       put(".3gp", "video/3gpp"); 
       put(".3gp2", "video/3gpp2"); 
       put(".3gpp", "video/3gpp"); 
       put(".7z", "application/x-7z-compressed"); 
       put(".aa", "audio/audible"); 
       put(".AAC", "audio/aac"); 
       put(".aaf", "application/octet-stream"); 
       put(".aax", "audio/vnd.audible.aax"); 
       put(".ac3", "audio/ac3"); 
       put(".aca", "application/octet-stream"); 
       put(".accda", "application/msaccess.addin"); 
       put(".accdb", "application/msaccess"); 
       put(".accdc", "application/msaccess.cab"); 
       put(".accde", "application/msaccess"); 
       put(".accdr", "application/msaccess.runtime"); 
       put(".accdt", "application/msaccess"); 
       put(".accdw", "application/msaccess.webapplication"); 
       put(".accft", "application/msaccess.ftemplate"); 
       put(".acx", "application/internet-property-stream"); 
       put(".AddIn", "text/xml"); 
       put(".ade", "application/msaccess"); 
       put(".adobebridge", "application/x-bridge-url"); 
       put(".adp", "application/msaccess"); 
       put(".ADT", "audio/vnd.dlna.adts"); 
       put(".ADTS", "audio/aac"); 
       put(".afm", "application/octet-stream"); 
       put(".ai", "application/postscript"); 
       put(".aif", "audio/x-aiff"); 
       put(".aifc", "audio/aiff"); 
       put(".aiff", "audio/aiff"); 
       put(".air", "application/vnd.adobe.air-application-installer-package+zip"); 
       put(".amc", "application/x-mpeg"); 
       put(".application", "application/x-ms-application"); 
       put(".art", "image/x-jg"); 
       put(".asa", "application/xml"); 
       put(".asax", "application/xml"); 
       put(".ascx", "application/xml"); 
       put(".asd", "application/octet-stream"); 
       put(".asf", "video/x-ms-asf"); 
       put(".ashx", "application/xml"); 
       put(".asi", "application/octet-stream"); 
       put(".asm", "text/plain"); 
       put(".asmx", "application/xml"); 
       put(".aspx", "application/xml"); 
       put(".asr", "video/x-ms-asf"); 
       put(".asx", "video/x-ms-asf"); 
       put(".atom", "application/atom+xml"); 
       put(".au", "audio/basic"); 
       put(".avi", "video/x-msvideo"); 
       put(".axs", "application/olescript"); 
       put(".bas", "text/plain"); 
       put(".bcpio", "application/x-bcpio"); 
       put(".bin", "application/octet-stream"); 
       put(".bmp", "image/bmp"); 
       put(".c", "text/plain"); 
       put(".cab", "application/octet-stream"); 
       put(".caf", "audio/x-caf"); 
       put(".calx", "application/vnd.ms-office.calx"); 
       put(".cat", "application/vnd.ms-pki.seccat"); 
       put(".cc", "text/plain"); 
       put(".cd", "text/plain"); 
       put(".cdda", "audio/aiff"); 
       put(".cdf", "application/x-cdf"); 
       put(".cer", "application/x-x509-ca-cert"); 
       put(".chm", "application/octet-stream"); 
       put(".class", "application/x-java-applet"); 
       put(".clp", "application/x-msclip"); 
       put(".cmx", "image/x-cmx"); 
       put(".cnf", "text/plain"); 
       put(".cod", "image/cis-cod"); 
       put(".config", "application/xml"); 
       put(".contact", "text/x-ms-contact"); 
       put(".coverage", "application/xml"); 
       put(".cpio", "application/x-cpio"); 
       put(".cpp", "text/plain"); 
       put(".crd", "application/x-mscardfile"); 
       put(".crl", "application/pkix-crl"); 
       put(".crt", "application/x-x509-ca-cert"); 
       put(".cs", "text/plain"); 
       put(".csdproj", "text/plain"); 
       put(".csh", "application/x-csh"); 
       put(".csproj", "text/plain"); 
       put(".css", "text/css"); 
       put(".csv", "text/csv"); 
       put(".cur", "application/octet-stream"); 
       put(".cxx", "text/plain"); 
       put(".dat", "application/octet-stream"); 
       put(".datasource", "application/xml"); 
       put(".dbproj", "text/plain"); 
       put(".dcr", "application/x-director"); 
       put(".def", "text/plain"); 
       put(".deploy", "application/octet-stream"); 
       put(".der", "application/x-x509-ca-cert"); 
       put(".dgml", "application/xml"); 
       put(".dib", "image/bmp"); 
       put(".dif", "video/x-dv"); 
       put(".dir", "application/x-director"); 
       put(".disco", "text/xml"); 
       put(".dll", "application/x-msdownload"); 
       put(".dll.config", "text/xml"); 
       put(".dlm", "text/dlm"); 
       put(".doc", "application/msword"); 
       put(".docm", "application/vnd.ms-word.document.macroEnabled.12"); 
       put(".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); 
       put(".dot", "application/msword"); 
       put(".dotm", "application/vnd.ms-word.template.macroEnabled.12"); 
       put(".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"); 
       put(".dsp", "application/octet-stream"); 
       put(".dsw", "text/plain"); 
       put(".dtd", "text/xml"); 
       put(".dtsConfig", "text/xml"); 
       put(".dv", "video/x-dv"); 
       put(".dvi", "application/x-dvi"); 
       put(".dwf", "drawing/x-dwf"); 
       put(".dwp", "application/octet-stream"); 
       put(".dxr", "application/x-director"); 
       put(".eml", "message/rfc822"); 
       put(".emz", "application/octet-stream"); 
       put(".eot", "application/octet-stream"); 
       put(".eps", "application/postscript"); 
       put(".etl", "application/etl"); 
       put(".etx", "text/x-setext"); 
       put(".evy", "application/envoy"); 
       put(".exe", "application/octet-stream"); 
       put(".exe.config", "text/xml"); 
       put(".fdf", "application/vnd.fdf"); 
       put(".fif", "application/fractals"); 
       put(".filters", "Application/xml"); 
       put(".fla", "application/octet-stream"); 
       put(".flr", "x-world/x-vrml"); 
       put(".flv", "video/x-flv"); 
       put(".fsscript", "application/fsharp-script"); 
       put(".fsx", "application/fsharp-script"); 
       put(".generictest", "application/xml"); 
       put(".gif", "image/gif"); 
       put(".group", "text/x-ms-group"); 
       put(".gsm", "audio/x-gsm"); 
       put(".gtar", "application/x-gtar"); 
       put(".gz", "application/x-gzip"); 
       put(".h", "text/plain"); 
       put(".hdf", "application/x-hdf"); 
       put(".hdml", "text/x-hdml"); 
       put(".hhc", "application/x-oleobject"); 
       put(".hhk", "application/octet-stream"); 
       put(".hhp", "application/octet-stream"); 
       put(".hlp", "application/winhlp"); 
       put(".hpp", "text/plain"); 
       put(".hqx", "application/mac-binhex40"); 
       put(".hta", "application/hta"); 
       put(".htc", "text/x-component"); 
       put(".htm", "text/html"); 
       put(".html", "text/html"); 
       put(".htt", "text/webviewhtml"); 
       put(".hxa", "application/xml"); 
       put(".hxc", "application/xml"); 
       put(".hxd", "application/octet-stream"); 
       put(".hxe", "application/xml"); 
       put(".hxf", "application/xml"); 
       put(".hxh", "application/octet-stream"); 
       put(".hxi", "application/octet-stream"); 
       put(".hxk", "application/xml"); 
       put(".hxq", "application/octet-stream"); 
       put(".hxr", "application/octet-stream"); 
       put(".hxs", "application/octet-stream"); 
       put(".hxt", "text/html"); 
       put(".hxv", "application/xml"); 
       put(".hxw", "application/octet-stream"); 
       put(".hxx", "text/plain"); 
       put(".i", "text/plain"); 
       put(".ico", "image/x-icon"); 
       put(".ics", "application/octet-stream"); 
       put(".idl", "text/plain"); 
       put(".ief", "image/ief"); 
       put(".iii", "application/x-iphone"); 
       put(".inc", "text/plain"); 
       put(".inf", "application/octet-stream"); 
       put(".inl", "text/plain"); 
       put(".ins", "application/x-internet-signup"); 
       put(".ipa", "application/x-itunes-ipa"); 
       put(".ipg", "application/x-itunes-ipg"); 
       put(".ipproj", "text/plain"); 
       put(".ipsw", "application/x-itunes-ipsw"); 
       put(".iqy", "text/x-ms-iqy"); 
       put(".isp", "application/x-internet-signup"); 
       put(".ite", "application/x-itunes-ite"); 
       put(".itlp", "application/x-itunes-itlp"); 
       put(".itms", "application/x-itunes-itms"); 
       put(".itpc", "application/x-itunes-itpc"); 
       put(".IVF", "video/x-ivf"); 
       put(".jar", "application/java-archive"); 
       put(".java", "application/octet-stream"); 
       put(".jck", "application/liquidmotion"); 
       put(".jcz", "application/liquidmotion"); 
       put(".jfif", "image/pjpeg"); 
       put(".jnlp", "application/x-java-jnlp-file"); 
       put(".jpb", "application/octet-stream"); 
       put(".jpe", "image/jpeg"); 
       put(".jpeg", "image/jpeg"); 
       put(".jpg", "image/jpeg"); 
       put(".js", "application/x-javascript"); 
       put(".json", "application/json"); 
       put(".jsx", "text/jscript"); 
       put(".jsxbin", "text/plain"); 
       put(".latex", "application/x-latex"); 
       put(".library-ms", "application/windows-library+xml"); 
       put(".lit", "application/x-ms-reader"); 
       put(".loadtest", "application/xml"); 
       put(".lpk", "application/octet-stream"); 
       put(".lsf", "video/x-la-asf"); 
       put(".lst", "text/plain"); 
       put(".lsx", "video/x-la-asf"); 
       put(".lzh", "application/octet-stream"); 
       put(".m13", "application/x-msmediaview"); 
       put(".m14", "application/x-msmediaview"); 
       put(".m1v", "video/mpeg"); 
       put(".m2t", "video/vnd.dlna.mpeg-tts"); 
       put(".m2ts", "video/vnd.dlna.mpeg-tts"); 
       put(".m2v", "video/mpeg"); 
       put(".m3u", "audio/x-mpegurl"); 
       put(".m3u8", "audio/x-mpegurl"); 
       put(".m4a", "audio/m4a"); 
       put(".m4b", "audio/m4b"); 
       put(".m4p", "audio/m4p"); 
       put(".m4r", "audio/x-m4r"); 
       put(".m4v", "video/x-m4v"); 
       put(".mac", "image/x-macpaint"); 
       put(".mak", "text/plain"); 
       put(".man", "application/x-troff-man"); 
       put(".manifest", "application/x-ms-manifest"); 
       put(".map", "text/plain"); 
       put(".master", "application/xml"); 
       put(".mda", "application/msaccess"); 
       put(".mdb", "application/x-msaccess"); 
       put(".mde", "application/msaccess"); 
       put(".mdp", "application/octet-stream"); 
       put(".me", "application/x-troff-me"); 
       put(".mfp", "application/x-shockwave-flash"); 
       put(".mht", "message/rfc822"); 
       put(".mhtml", "message/rfc822"); 
       put(".mid", "audio/mid"); 
       put(".midi", "audio/mid"); 
       put(".mix", "application/octet-stream"); 
       put(".mk", "text/plain"); 
       put(".mmf", "application/x-smaf"); 
       put(".mno", "text/xml"); 
       put(".mny", "application/x-msmoney"); 
       put(".mod", "video/mpeg"); 
       put(".mov", "video/quicktime"); 
       put(".movie", "video/x-sgi-movie"); 
       put(".mp2", "video/mpeg"); 
       put(".mp2v", "video/mpeg"); 
       put(".mp3", "audio/mpeg"); 
       put(".mp4", "video/mp4"); 
       put(".mp4v", "video/mp4"); 
       put(".mpa", "video/mpeg"); 
       put(".mpe", "video/mpeg"); 
       put(".mpeg", "video/mpeg"); 
       put(".mpf", "application/vnd.ms-mediapackage"); 
       put(".mpg", "video/mpeg"); 
       put(".mpp", "application/vnd.ms-project"); 
       put(".mpv2", "video/mpeg"); 
       put(".mqv", "video/quicktime"); 
       put(".ms", "application/x-troff-ms"); 
       put(".msi", "application/octet-stream"); 
       put(".mso", "application/octet-stream"); 
       put(".mts", "video/vnd.dlna.mpeg-tts"); 
       put(".mtx", "application/xml"); 
       put(".mvb", "application/x-msmediaview"); 
       put(".mvc", "application/x-miva-compiled"); 
       put(".mxp", "application/x-mmxp"); 
       put(".nc", "application/x-netcdf"); 
       put(".nsc", "video/x-ms-asf"); 
       put(".nws", "message/rfc822"); 
       put(".ocx", "application/octet-stream"); 
       put(".oda", "application/oda"); 
       put(".odc", "text/x-ms-odc"); 
       put(".odh", "text/plain"); 
       put(".odl", "text/plain"); 
       put(".odp", "application/vnd.oasis.opendocument.presentation"); 
       put(".ods", "application/oleobject"); 
       put(".odt", "application/vnd.oasis.opendocument.text"); 
       put(".one", "application/onenote"); 
       put(".onea", "application/onenote"); 
       put(".onepkg", "application/onenote"); 
       put(".onetmp", "application/onenote"); 
       put(".onetoc", "application/onenote"); 
       put(".onetoc2", "application/onenote"); 
       put(".orderedtest", "application/xml"); 
       put(".osdx", "application/opensearchdescription+xml"); 
       put(".p10", "application/pkcs10"); 
       put(".p12", "application/x-pkcs12"); 
       put(".p7b", "application/x-pkcs7-certificates"); 
       put(".p7c", "application/pkcs7-mime"); 
       put(".p7m", "application/pkcs7-mime"); 
       put(".p7r", "application/x-pkcs7-certreqresp"); 
       put(".p7s", "application/pkcs7-signature"); 
       put(".pbm", "image/x-portable-bitmap"); 
       put(".pcast", "application/x-podcast"); 
       put(".pct", "image/pict"); 
       put(".pcx", "application/octet-stream"); 
       put(".pcz", "application/octet-stream"); 
       put(".pdf", "application/pdf"); 
       put(".pfb", "application/octet-stream"); 
       put(".pfm", "application/octet-stream"); 
       put(".pfx", "application/x-pkcs12"); 
       put(".pgm", "image/x-portable-graymap"); 
       put(".pic", "image/pict"); 
       put(".pict", "image/pict"); 
       put(".pkgdef", "text/plain"); 
       put(".pkgundef", "text/plain"); 
       put(".pko", "application/vnd.ms-pki.pko"); 
       put(".pls", "audio/scpls"); 
       put(".pma", "application/x-perfmon"); 
       put(".pmc", "application/x-perfmon"); 
       put(".pml", "application/x-perfmon"); 
       put(".pmr", "application/x-perfmon"); 
       put(".pmw", "application/x-perfmon"); 
       put(".png", "image/png"); 
       put(".pnm", "image/x-portable-anymap"); 
       put(".pnt", "image/x-macpaint"); 
       put(".pntg", "image/x-macpaint"); 
       put(".pnz", "image/png"); 
       put(".pot", "application/vnd.ms-powerpoint"); 
       put(".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"); 
       put(".potx", "application/vnd.openxmlformats-officedocument.presentationml.template"); 
       put(".ppa", "application/vnd.ms-powerpoint"); 
       put(".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"); 
       put(".ppm", "image/x-portable-pixmap"); 
       put(".pps", "application/vnd.ms-powerpoint"); 
       put(".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"); 
       put(".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"); 
       put(".ppt", "application/vnd.ms-powerpoint"); 
       put(".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"); 
       put(".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"); 
       put(".prf", "application/pics-rules"); 
       put(".prm", "application/octet-stream"); 
       put(".prx", "application/octet-stream"); 
       put(".ps", "application/postscript"); 
       put(".psc1", "application/PowerShell"); 
       put(".psd", "application/octet-stream"); 
       put(".psess", "application/xml"); 
       put(".psm", "application/octet-stream"); 
       put(".psp", "application/octet-stream"); 
       put(".pub", "application/x-mspublisher"); 
       put(".pwz", "application/vnd.ms-powerpoint"); 
       put(".qht", "text/x-html-insertion"); 
       put(".qhtm", "text/x-html-insertion"); 
       put(".qt", "video/quicktime"); 
       put(".qti", "image/x-quicktime"); 
       put(".qtif", "image/x-quicktime"); 
       put(".qtl", "application/x-quicktimeplayer"); 
       put(".qxd", "application/octet-stream"); 
       put(".ra", "audio/x-pn-realaudio"); 
       put(".ram", "audio/x-pn-realaudio"); 
       put(".rar", "application/octet-stream"); 
       put(".ras", "image/x-cmu-raster"); 
       put(".rat", "application/rat-file"); 
       put(".rc", "text/plain"); 
       put(".rc2", "text/plain"); 
       put(".rct", "text/plain"); 
       put(".rdlc", "application/xml"); 
       put(".resx", "application/xml"); 
       put(".rf", "image/vnd.rn-realflash"); 
       put(".rgb", "image/x-rgb"); 
       put(".rgs", "text/plain"); 
       put(".rm", "application/vnd.rn-realmedia"); 
       put(".rmi", "audio/mid"); 
       put(".rmp", "application/vnd.rn-rn_music_package"); 
       put(".roff", "application/x-troff"); 
       put(".rpm", "audio/x-pn-realaudio-plugin"); 
       put(".rqy", "text/x-ms-rqy"); 
       put(".rtf", "application/rtf"); 
       put(".rtx", "text/richtext"); 
       put(".ruleset", "application/xml"); 
       put(".s", "text/plain"); 
       put(".safariextz", "application/x-safari-safariextz"); 
       put(".scd", "application/x-msschedule"); 
       put(".sct", "text/scriptlet"); 
       put(".sd2", "audio/x-sd2"); 
       put(".sdp", "application/sdp"); 
       put(".sea", "application/octet-stream"); 
       put(".searchConnector-ms", "application/windows-search-connector+xml"); 
       put(".setpay", "application/set-payment-initiation"); 
       put(".setreg", "application/set-registration-initiation"); 
       put(".settings", "application/xml"); 
       put(".sgimb", "application/x-sgimb"); 
       put(".sgml", "text/sgml"); 
       put(".sh", "application/x-sh"); 
       put(".shar", "application/x-shar"); 
       put(".shtml", "text/html"); 
       put(".sit", "application/x-stuffit"); 
       put(".sitemap", "application/xml"); 
       put(".skin", "application/xml"); 
       put(".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"); 
       put(".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"); 
       put(".slk", "application/vnd.ms-excel"); 
       put(".sln", "text/plain"); 
       put(".slupkg-ms", "application/x-ms-license"); 
       put(".smd", "audio/x-smd"); 
       put(".smi", "application/octet-stream"); 
       put(".smx", "audio/x-smd"); 
       put(".smz", "audio/x-smd"); 
       put(".snd", "audio/basic"); 
       put(".snippet", "application/xml"); 
       put(".snp", "application/octet-stream"); 
       put(".sol", "text/plain"); 
       put(".sor", "text/plain"); 
       put(".spc", "application/x-pkcs7-certificates"); 
       put(".spl", "application/futuresplash"); 
       put(".src", "application/x-wais-source"); 
       put(".srf", "text/plain"); 
       put(".SSISDeploymentManifest", "text/xml"); 
       put(".ssm", "application/streamingmedia"); 
       put(".sst", "application/vnd.ms-pki.certstore"); 
       put(".stl", "application/vnd.ms-pki.stl"); 
       put(".sv4cpio", "application/x-sv4cpio"); 
       put(".sv4crc", "application/x-sv4crc"); 
       put(".svc", "application/xml"); 
       put(".swf", "application/x-shockwave-flash"); 
       put(".t", "application/x-troff"); 
       put(".tar", "application/x-tar"); 
       put(".tcl", "application/x-tcl"); 
       put(".testrunconfig", "application/xml"); 
       put(".testsettings", "application/xml"); 
       put(".tex", "application/x-tex"); 
       put(".texi", "application/x-texinfo"); 
       put(".texinfo", "application/x-texinfo"); 
       put(".tgz", "application/x-compressed"); 
       put(".thmx", "application/vnd.ms-officetheme"); 
       put(".thn", "application/octet-stream"); 
       put(".tif", "image/tiff"); 
       put(".tiff", "image/tiff"); 
       put(".tlh", "text/plain"); 
       put(".tli", "text/plain"); 
       put(".toc", "application/octet-stream"); 
       put(".tr", "application/x-troff"); 
       put(".trm", "application/x-msterminal"); 
       put(".trx", "application/xml"); 
       put(".ts", "video/vnd.dlna.mpeg-tts"); 
       put(".tsv", "text/tab-separated-values"); 
       put(".ttf", "application/octet-stream"); 
       put(".tts", "video/vnd.dlna.mpeg-tts"); 
       put(".txt", "text/plain"); 
       put(".u32", "application/octet-stream"); 
       put(".uls", "text/iuls"); 
       put(".user", "text/plain"); 
       put(".ustar", "application/x-ustar"); 
       put(".vb", "text/plain"); 
       put(".vbdproj", "text/plain"); 
       put(".vbk", "video/mpeg"); 
       put(".vbproj", "text/plain"); 
       put(".vbs", "text/vbscript"); 
       put(".vcf", "text/x-vcard"); 
       put(".vcproj", "Application/xml"); 
       put(".vcs", "text/plain"); 
       put(".vcxproj", "Application/xml"); 
       put(".vddproj", "text/plain"); 
       put(".vdp", "text/plain"); 
       put(".vdproj", "text/plain"); 
       put(".vdx", "application/vnd.ms-visio.viewer"); 
       put(".vml", "text/xml"); 
       put(".vscontent", "application/xml"); 
       put(".vsct", "text/xml"); 
       put(".vsd", "application/vnd.visio"); 
       put(".vsi", "application/ms-vsi"); 
       put(".vsix", "application/vsix"); 
       put(".vsixlangpack", "text/xml"); 
       put(".vsixmanifest", "text/xml"); 
       put(".vsmdi", "application/xml"); 
       put(".vspscc", "text/plain"); 
       put(".vss", "application/vnd.visio"); 
       put(".vsscc", "text/plain"); 
       put(".vssettings", "text/xml"); 
       put(".vssscc", "text/plain"); 
       put(".vst", "application/vnd.visio"); 
       put(".vstemplate", "text/xml"); 
       put(".vsto", "application/x-ms-vsto"); 
       put(".vsw", "application/vnd.visio"); 
       put(".vsx", "application/vnd.visio"); 
       put(".vtx", "application/vnd.visio"); 
       put(".wav", "audio/wav"); 
       put(".wave", "audio/wav"); 
       put(".wax", "audio/x-ms-wax"); 
       put(".wbk", "application/msword"); 
       put(".wbmp", "image/vnd.wap.wbmp"); 
       put(".wcm", "application/vnd.ms-works"); 
       put(".wdb", "application/vnd.ms-works"); 
       put(".wdp", "image/vnd.ms-photo"); 
       put(".webarchive", "application/x-safari-webarchive"); 
       put(".webtest", "application/xml"); 
       put(".wiq", "application/xml"); 
       put(".wiz", "application/msword"); 
       put(".wks", "application/vnd.ms-works"); 
       put(".WLMP", "application/wlmoviemaker"); 
       put(".wlpginstall", "application/x-wlpg-detect"); 
       put(".wlpginstall3", "application/x-wlpg3-detect"); 
       put(".wm", "video/x-ms-wm"); 
       put(".wma", "audio/x-ms-wma"); 
       put(".wmd", "application/x-ms-wmd"); 
       put(".wmf", "application/x-msmetafile"); 
       put(".wml", "text/vnd.wap.wml"); 
       put(".wmlc", "application/vnd.wap.wmlc"); 
       put(".wmls", "text/vnd.wap.wmlscript"); 
       put(".wmlsc", "application/vnd.wap.wmlscriptc"); 
       put(".wmp", "video/x-ms-wmp"); 
       put(".wmv", "video/x-ms-wmv"); 
       put(".wmx", "video/x-ms-wmx"); 
       put(".wmz", "application/x-ms-wmz"); 
       put(".wpl", "application/vnd.ms-wpl"); 
       put(".wps", "application/vnd.ms-works"); 
       put(".wri", "application/x-mswrite"); 
       put(".wrl", "x-world/x-vrml"); 
       put(".wrz", "x-world/x-vrml"); 
       put(".wsc", "text/scriptlet"); 
       put(".wsdl", "text/xml"); 
       put(".wvx", "video/x-ms-wvx"); 
       put(".x", "application/directx"); 
       put(".xaf", "x-world/x-vrml"); 
       put(".xaml", "application/xaml+xml"); 
       put(".xap", "application/x-silverlight-app"); 
       put(".xbap", "application/x-ms-xbap"); 
       put(".xbm", "image/x-xbitmap"); 
       put(".xdr", "text/plain"); 
       put(".xht", "application/xhtml+xml"); 
       put(".xhtml", "application/xhtml+xml"); 
       put(".xla", "application/vnd.ms-excel"); 
       put(".xlam", "application/vnd.ms-excel.addin.macroEnabled.12"); 
       put(".xlc", "application/vnd.ms-excel"); 
       put(".xld", "application/vnd.ms-excel"); 
       put(".xlk", "application/vnd.ms-excel"); 
       put(".xll", "application/vnd.ms-excel"); 
       put(".xlm", "application/vnd.ms-excel"); 
       put(".xls", "application/vnd.ms-excel"); 
       put(".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"); 
       put(".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"); 
       put(".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 
       put(".xlt", "application/vnd.ms-excel"); 
       put(".xltm", "application/vnd.ms-excel.template.macroEnabled.12"); 
       put(".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"); 
       put(".xlw", "application/vnd.ms-excel"); 
       put(".xml", "text/xml"); 
       put(".xmta", "application/xml"); 
       put(".xof", "x-world/x-vrml"); 
       put(".XOML", "text/plain"); 
       put(".xpm", "image/x-xpixmap"); 
       put(".xps", "application/vnd.ms-xpsdocument"); 
       put(".xrm-ms", "text/xml"); 
       put(".xsc", "application/xml"); 
       put(".xsd", "text/xml"); 
       put(".xsf", "text/xml"); 
       put(".xsl", "text/xml"); 
       put(".xslt", "text/xml"); 
       put(".xsn", "application/octet-stream"); 
       put(".xss", "application/xml"); 
       put(".xtp", "application/octet-stream"); 
       put(".xwd", "image/x-xwindowdump"); 
       put(".z", "application/x-compress"); 
       put(".zip", "application/x-zip-compressed"); 
      } 
     }; 
    } 

    public static String getMimeType(String extension) { 
     if (extension == null) { 
      return null; 
     } 

     if (!extension.startsWith(".")) { 
      extension = "." + extension.toLowerCase(Locale.getDefault()); 
     } 

     String mime = mimeTypes.get(extension); 

     return mime != null ? mime : "application/octet-stream"; 
    } 
} 
Các vấn đề liên quan