文章插圖

文章插圖
Mime Type(Content-Type)
MIME Type介紹 Content-Type 各種定義
多用途互聯網郵件擴展(MIME , Multipurpose Internet Mail Extensions)是一個互聯網標準 , 它擴展了電子郵件標準 , 使其能夠支持非ASCII字符、二進制格式附件等多種格式的郵件消息 。在萬維網中使用的HTTP協議中也使用了MIME的框架 , 標準被擴展為互聯網媒體類型 。通常來說 , 瀏覽器通過MIME Type區分不同的媒體資源 。目前版本:1.0 。
MIME Type是經由IETF組織協商 , 以RFC形式作為建議標準發布在網上 , 通常只有一些在互聯網上獲得廣泛應用的格式才會獲得一個 MIME Type , 如果是某個客戶端自己定義的格式 , 一般只能以application/x- 開頭 。處理本地的文件 , 在沒有人告訴瀏覽器某個文件的MIME Type的情況下 , 瀏覽器也會做一些默認的處理 , 這可能和在操作系統中給文件配置的MIME Type有關 。
在HTTP中 , MIME Type類型被定義在Content-Type header中 , 每個MIME類型由3部分組成:Content-Type: [type]/[subtype] , 前者是數據大類別 , 后者定義具體的種類 。
通過文件擴展名獲取ContentType
import lombok.Getter;import org.apache.commons.lang3.StringUtils;/** * 通過文件擴展名獲取ContentType [email protected] 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 containerdoesn't contain video", "audio/3gpp2"),MIME_7Z("7z", "7-zip存檔", "application/x-7z-compressed");//擴展名private final String extension;//說明private final String explain;//contentType/mime類型private final String mimeType;/*** @param extension 上傳的文件擴展名* @param explain類型說明* @param mimeTypeMime對應的類型*/MimeTypeEnum(String extension, String explain, String mimeType) {this.extension = extension;this.explain = explain;this.mimeType = mimeType;}/*** 通過擴展名獲取枚舉類型** @param extension 擴展名* @return 枚舉類*/public static MimeTypeEnum getByExtension(String extension) {if (StringUtils.isEmpty(extension)) {return null;}for (MimeTypeEnum typesEnum : MimeTypeEnum.values()) {if (extension.equals(typesEnum.getExtension())) {return typesEnum;}}return null;}/*** Content-Type常用對照* 根據后綴獲取Mime** @param fileType 擴展名* @return mime類型*/public static String getContentType(String fileType) {MimeTypeEnum mimeTypeEnum = MimeTypeEnum.getByExtension(fileType);if (mimeTypeEnum != null) {return mimeTypeEnum.getMimeType();}return "application/octet-stream";}}根據文件獲取MimeType的幾種方式<!-- hutool-all --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.6.5</version></dependency><!-- commons.lang3--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.7</version></dependency><!-- fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.79</version></dependency><dependency><groupId>net.sf.jmimemagic</groupId><artifactId>jmimemagic</artifactId><version>0.1.4</version></dependency>【VSD格式 vsd是啥文件】import cn.hutool.core.io.FileUtil;import net.sf.jmimemagic.*;import javax.activation.MimetypesFileTypeMap;import java.io.File;import java.io.IOException;import java.net.FileNameMap;import java.net.URLConnection;import java.nio.file.Files;public class MimeTypeDemo {public static void main(String[] args) {File file = FileUtil.file("d:/001.jpg");// 第一種方式String mimeType1 = "";try {Magic parser = new Magic();MagicMatch match = parser.getMagicMatch(file, false);mimeType1 = match.getMimeType();} catch (MagicParseException e) {e.printStackTrace();} catch (MagicMatchNotFoundException e) {e.printStackTrace();} catch (MagicException e) {e.printStackTrace();}System.out.println("第一種方式: " + mimeType1);// 第二種方式String mimeType2 = new MimetypesFileTypeMap().getContentType(file);System.out.println("第二種方式: " + mimeType2);// 第三種方式String mimeType3 = "";try {mimeType3 = Files.probeContentType(file.toPath());} catch (IOException e) {e.printStackTrace();}System.out.println("第三種方式: " + mimeType3);//第四種方式FileNameMap fileNameMap = URLConnection.getFileNameMap();String mimeType4 = fileNameMap.getContentTypeFor(file.getParent());System.out.println("第四種方式: " + mimeType4);// 通過文件擴展名獲取ContentTypeMimeTypeEnum mimeTypeEnum = MimeTypeEnum.getByExtension("jpg");System.out.println(mimeTypeEnum.getExplain()+ " , "+mimeTypeEnum.getMimeType()+ " , "+mimeTypeEnum.getExtension());}}
- 華為手機視頻轉換為mp4格式 華為手機視頻怎么轉成mp4格式
- flv的視頻用什么軟件剪輯 flv格式用什么剪輯
- crx格式怎么打開 cr是什么格式的文件
- swf轉換成mp4格式軟件 swf轉換mp4要用什么轉換器
- parasolid格式文件的后綴名是
- 什么軟件可以打開caj格式的文件 打開caj格式的軟件
- csv格式文件可以保存公式嗎 怎么打開csv格式文件
- dxf是什么格式?用什么軟件打開? 什么軟件能打開dxf文件
- dwg的格式 dwg是什么文檔格式
- rar格式解壓縮失敗 rar壓縮文件解壓失敗
