• 文件类型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

  • 相关阅读:
    超链接标签的CSS伪类link,visited,hover,active
    CSS系列(8) CSS后代选择器和子选择器详解
    CSS系列(7)CSS类选择器Class详解
    CSS系列(6) CSS通配符详解
    CSS系列(5)-如何使用Firebug查看网页的html和css
    我给女朋友讲编程CSS系列(4) CSS盒子模型
    两次理发感悟到的人生
    我给女朋友讲编程CSS系列(3) CSS如何设置字体的类型、大小、颜色,如何使用火狐浏览器的Firebug插件查看网页的字体
    SSH不允许进行DNS解析
    项目发布平台
  • 原文地址:https://www.cnblogs.com/mao2080/p/13804304.html
Copyright © 2020-2023  润新知