文件類型ContentType枚舉

特別提示:本人博客部分有參考網絡其他博客,但均是本人親手編寫過並驗證通過。如發現博客有錯誤,請及時提出以免誤導其他人,謝謝!歡迎轉載,但記得標明文章出處:http://www.cnblogs.com/mao2080/

1、問題描述

  最近在做文件上傳優化,有些文件發現需要設置ContentType屬性才能正常顯示,否則就會以文件流的方式走下載去了,於是網上找到了文件後綴與ContentType對應的關係整理成了枚舉方便使用。

2、操作方法

package com.enums;

public enum MimeTypeEnum {
    
    AAC("acc","AAC音頻","audio/aac"),
    
    ABW("abw","AbiWord文件","application/x-abiword"),
    
    ARC("arc","存檔文件","application/x-freearc"),
    
    AVI("avi","音頻視頻交錯格式","video/x-msvideo"),
   
    AZW("azw","亞馬遜Kindle電子書格式","application/vnd.amazon.ebook"),
    
    BIN("bin","任何類型的二進制數據","application/octet-stream"),
    
    BMP("bmp","Windows OS / 2位圖圖形","image/bmp"),
   
    BZ("bz","BZip存檔","application/x-bzip"),
   
    BZ2("bz2","BZip2存檔","application/x-bzip2"),
   
    CSH("csh","C-Shell腳本","application/x-csh"),
    
    CSS("css","級聯樣式表(CSS)","text/css"),
   
    CSV("csv","逗號分隔值(CSV)","text/csv"),
    
    DOC("doc","微軟Word文件","application/msword"),
    
    DOCX("docx","Microsoft Word(OpenXML)","application/vnd.openxmlformats-officedocument.wordprocessingml.document"),
    
    EOT("eot","MS Embedded OpenType字體","application/vnd.ms-fontobject"),
   
    EPUB("epub","電子出版物(EPUB)","application/epub+zip"),
   
    GZ("gz","GZip壓縮檔案","application/gzip"),
    
    GIF("gif","圖形交換格式(GIF)","image/gif"),
    
    HTM("htm","超文本標記語言(HTML)","text/html"),
    
    HTML("html","超文本標記語言(HTML)","text/html"),
   
    ICO("ico","圖標格式","image/vnd.microsoft.icon"),
    
    ICS("ics","iCalendar格式","text/calendar"),
    
    JAR("jar","Java存檔","application/java-archive"),
    
    JPEG("jpeg","JPEG圖像","image/jpeg"),
    
    JPG("jpg","JPEG圖像","image/jpeg"),
    
    JS("js","JavaScript","text/javascript"),
    
    JSON("json","JSON格式","application/json"),
    
    JSONLD("jsonld","JSON-LD格式","application/ld+json"),
    
    MID("mid","樂器數字接口(MIDI)","audio/midi"),
    
    MIDI("midi","樂器數字接口(MIDI)","audio/midi"),
    
    MJS("mjs","JavaScript模塊","text/javascript"),
    
    MP3("mp3","MP3音頻","audio/mpeg"),
    
    MPEG("mpeg","MPEG視頻","video/mpeg"),
    
    MPKG("mpkg","蘋果安裝程序包","application/vnd.apple.installer+xml"),
    
    ODP("odp","OpenDocument演示文稿文檔","application/vnd.oasis.opendocument.presentation"),
   
    ODS("ods","OpenDocument電子表格文檔","application/vnd.oasis.opendocument.spreadsheet"),
    
    ODT("odt","OpenDocument文字文件","application/vnd.oasis.opendocument.text"),

    OGA("oga","OGG音訊","audio/ogg"),
    
    OGV("ogv","OGG視頻","video/ogg"),
    
    OGX("ogx","OGG","application/ogg"),
    
    OPUS("opus","OPUS音頻","audio/opus"),
    
    OTF("otf","otf字體","font/otf"),
    
    PNG("png","便攜式網絡圖形","image/png"),
    
    PDF("pdf","Adobe 可移植文檔格式(PDF)","application/pdf"),
    
    PHP("php","php","application/x-httpd-php"),
    
    PPT("ppt","Microsoft PowerPoint","application/vnd.ms-powerpoint"),
    
    PPTX("pptx","Microsoft PowerPoint(OpenXML)","application/vnd.openxmlformats-officedocument.presentationml.presentation"),
    
    RAR("rar","RAR檔案","application/vnd.rar"),
    
    RTF("rtf","富文本格式","application/rtf"),
    
    SH("sh","Bourne Shell腳本","application/x-sh"),
    
    SVG("svg","可縮放矢量圖形(SVG)","image/svg+xml"),
    
    SWF("swf","小型Web格式(SWF)或Adobe Flash文檔","application/x-shockwave-flash"),
    
    TAR("tar","磁帶存檔(TAR)","application/x-tar"),
    
    TIF("tif","標記圖像文件格式(TIFF)","image/tiff"),
    
    TIFF("tiff","標記圖像文件格式(TIFF)","image/tiff"),
    
    TS("ts","MPEG傳輸流","video/mp2t"),
    
    TTF("ttf","ttf字體","font/ttf"),
    
    TXT("txt","文本(通常爲ASCII或ISO 8859- n","text/plain"),
    
    VSD("vsd","微軟Visio","application/vnd.visio"),
    
    WAV("wav","波形音頻格式","audio/wav"),
    
    WEBA("weba","WEBM音頻","audio/webm"),
    
    WEBM("webm","WEBM視頻","video/webm"),
    
    WEBP("webp","WEBP圖像","image/webp"),
    
    WOFF("woff","Web開放字體格式(WOFF)","font/woff"),
   
    WOFF2("woff2","Web開放字體格式(WOFF)","font/woff2"),
    
    XHTML("xhtml","XHTML","application/xhtml+xml"),
   
    XLS("xls","微軟Excel","application/vnd.ms-excel"),
    
    XLSX("xlsx","微軟Excel(OpenXML)","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
    
    XML("xml","XML","application/xml"),
    
    XUL("xul","XUL","application/vnd.mozilla.xul+xml"),
    
    ZIP("zip","ZIP","application/zip"),
    
    MIME_3GP("3gp", "3GPP audio/video container", "video/3gpp"),
    
    MIME_3GP_WITHOUT_VIDEO("3gp", "3GPP audio/video container doesn't contain video", "audio/3gpp2"),
    
    MIME_3G2("3g2", "3GPP2 audio/video container", "video/3gpp2"),

    MIME_3G2_WITHOUT_VIDEO("3g2", "3GPP2 audio/video container  doesn't contain video", "audio/3gpp2"),

    MIME_7Z("7z","7-zip存檔","application/x-7z-compressed")
    ;

    private String extension;

    private String explain;

    private String mimeType;

    MimeTypeEnum(String extension, String explain, String mimeType) {
        this.extension = extension;
        this.explain = explain;
        this.mimeType = mimeType;
    }
    
    public static MimeTypeEnum findByExtension(String extension) {
        if(StringUtil.isBlank(extension)){
            return null;
        }
        for (MimeTypeEnum typesEnum : MimeTypeEnum.values()) {
            if (extension.equals(typesEnum.getExtension())) {
                return typesEnum;
            }
        }
        return null;
    }
    
    /**
     * 描述:Content-Type常用對照
     * @param fileType
     * @return
     * @since
     */
    public static String getContentType(String fileType) {
        MimeTypeEnum mimeTypeEnum = MimeTypeEnum.findByExtension(fileType);
        if(mimeTypeEnum != null){
            return mimeTypeEnum.getMimeType();
        }
        return "application/octet-stream";
    }
    
}

3、參考網站

  https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章