常见 MimeType 参考表

分类:常用对照表
MIME TYPE,是互联网领域中描述消息类型的因特网标准,用于表示文件的媒体类型。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。本工具提供了常见的文件 Mime Type 参考表,是互联网开发中的必备参考资料之一。

Mime Type 参考表 MIME TYPES

提示:本页列出的 MIME TYPE 数据较多(目前已整理收集了 55 个),可以按 Ctrl + F 组合键来查找特定文件的媒体类型。

媒体类型文件扩展名说明
application/msworddoc微软 Office Word 格式(Microsoft Word 97 - 2004 document)
application/vnd.openxmlformats-officedocument.wordprocessingml.documentdocx微软 Office Word 文档格式
application/vnd.ms-excelxls微软 Office Excel 格式(Microsoft Excel 97 - 2004 Workbook
application/vnd.openxmlformats-officedocument.spreadsheetml.sheetxlsx微软 Office Excel 文档格式
application/vnd.ms-powerpointppt微软 Office PowerPoint 格式(Microsoft PowerPoint 97 - 2003 演示文稿)
application/vnd.openxmlformats-officedocument.presentationml.presentationpptx微软 Office PowerPoint 文稿格式
application/x-gzipgz, gzipGZ 压缩文件格式
application/zipzip, 7zipZIP 压缩文件格式
application/rarrarRAR 压缩文件格式
application/x-tartar, tgzTAR 压缩文件格式
application/pdfpdfPDF 是 Portable Document Format 的简称,即便携式文档格式
application/rtfrtfRTF 是指 Rich Text Format,即通常所说的富文本格式
image/gifgifGIF 图像格式
image/jpegjpg, jpegJPG(JPEG) 图像格式
image/jp2jpg2JPG2 图像格式
image/pngpngPNG 图像格式
image/tifftif, tiffTIF(TIFF) 图像格式
image/bmpbmpBMP 图像格式(位图格式)
image/svg+xmlsvg, svgzSVG 图像格式
image/webpwebpWebP 图像格式
image/x-iconicoico 图像格式,通常用于浏览器 Favicon 图标
application/kswpswps金山 Office 文字排版文件格式
application/ksetet金山 Office 表格文件格式
application/ksdpsdps金山 Office 演示文稿格式
application/x-photoshoppsdPhotoshop 源文件格式
application/x-coreldrawcdrCoreldraw 源文件格式
application/x-shockwave-flashswfAdobe Flash 源文件格式
text/plaintxt普通文本格式
application/x-javascriptjsJavascript 文件类型
text/javascriptjs表示 Javascript 脚本文件
text/csscss表示 CSS 样式表
text/htmlhtm, html, shtmlHTML 文件格式
application/xhtml+xmlxht, xhtmlXHTML 文件格式
text/xmlxmlXML 文件格式
text/x-vcardvcfVCF 文件格式
application/x-httpd-phpphp, php3, php4, phtmlPHP 文件格式
application/java-archivejarJava 归档文件格式
application/vnd.android.package-archiveapkAndroid 平台包文件格式
application/octet-streamexeWindows 系统可执行文件格式
application/x-x509-user-certcrt, pemPEM 文件格式
audio/mpegmp3mpeg 音频格式
audio/midimid, midimid 音频格式
audio/x-wavwavwav 音频格式
audio/x-mpegurlm3um3u 音频格式
audio/x-m4am4am4a 音频格式
audio/oggoggogg 音频格式
audio/x-realaudioraReal Audio 音频格式
video/mp4mp4mp4 视频格式
video/mpegmpg, mpe, mpegmpeg 视频格式
video/quicktimeqt, movQuickTime 视频格式
video/x-m4vm4vm4v 视频格式
video/x-ms-wmvwmvwmv 视频格式(Windows 操作系统上的一种视频格式)
video/x-msvideoaviavi 视频格式
video/webmwebmwebm 视频格式
video/x-flvflv一种基于 flash 技术的视频格式
工具介绍

MIME 类型简介

MIME 直译的意思是多功能互联网邮件扩展,它是一套描述消息内容类型(即文件的媒体类型)的因特网标准。从名字不难理解,MIME 设计的最初目的,是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。发展到现在,被 HTTP 协议支持之后,它使得在互联网传输的内容不仅是普通的文本,还可以是图像、音频、视频等表现力更加丰富的内容。

MIME 消息可以包含文本、图像、音频、视频以及其他应用程序专用的数据(如:Adobe Photoshop 应用程序)。每个 MIME 类型由两部分组成,由 / 分隔。前面是数据的大类别,例如 text(文本)、image(图象)、audio(声音)等;在后面定义具体的种类。如:text/javascriptimage/pngaudio/midi 都是合法且常见的 MIME 类型。

Internet 中有一个专门的组织 IANA(互联网数字分配机构)来确认标准的 MIME 类型,通常,只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type。但互联网发展的太快,很多应用程序等不及 IANA 将他们使用的 MIME 类型纳入标准类型。因此,他们使用在类别中以 application/x-*** 开头的方法来标识这个类别还没有成为标准,例如:x-gzipx-tar 等。事实上,这些类型运用广泛,已经成为了事实标准。只要客户端和服务器端共同承认这个 MIME 类型,即使它是不标准的类型也没有关系,客户端程序就能根据 MIME 类型,采用对应的处理方式来处理数据。

官方的 MIME 信息是由 IETF (Internet Engineering Task Force) 组织管理和维护。

主流编程语言获取文件 MIME 的方法

PHP

作为全世界最好的编程语言,PHP 获取文件 MIME 方法如下:

// 获取文件 MIME 类型
function get_mime_type($file) {
	if (function_exists('finfo_open')) {
		$finfo = finfo_open(FILEINFO_MIME_TYPE);
		$mimetype = finfo_file($finfo, $file);
		finfo_close($finfo);
	} else {
		$mimetype = mime_content_type($file);
	}

	if (empty($mimetype)) {
		$mimetype = 'application/octet-stream';
	}

	return $mimetype;
}

Javascript

Javascript 作为使用最广泛的脚本语言之一,在客户端验证文件类型是一种常见的场景。下面是通过 JS 查看文件类型的方法。

首先,在页面上定义一个文件上传控件:

<input type="file" id="fileUploader" multiple>

获取文件类型方法如下:

// 获取上传控件
var uploader = document.getElementById("fileUploader");

// 监听上传控件的 change 事件
uploader.addEventListener("change", function(event) {
    var files = uploader.files,
    for (var i = 0; i < files.length; i++) {
        console.log("文件名:" + files[i].name);
        console.log("文件类型" + files[i].type);
        console.log("文件大小" + files[i].size + " 字节");
    }
}, false);

Java

Java 是目前最流行的后端编程语言,通过 Java 获取文件 MIME 类型有多种方式,介绍如下。

1、在 Java 7(及其以上版本),可以这样获取:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Test {
	public static void main(String[] args) throws IOException {
		Path source = Paths.get("c:/temp/bady.png");
		// 将输出 image/png
		System.out.println(Files.probeContentType(source));
	}
}

2、使用 javax.activation.MimetypesFileTypeMap 对象获取 MIME 类型

import javax.activation.MimetypesFileTypeMap;
import java.io.File;

class GetMimeType {
	public static void main(String args[]) {
		File f = new File("loading.gif");
		// 将输出 image/gif
		System.out.println(new MimetypesFileTypeMap().getContentType(f));
	}
}

3、使用 java.net.URL 对象获取 MIME 类型

import java.net.*;

public class FileUtils{
	public static void main(String args[]) {
		URL url = new URL("file://c:/your/path/cache/test.txt");
		URLConnection uc = url.openConnection();;
		String type = uc.getContentType();
		
		// 将输出 text/plain
		System.out.println(type);
		
	}
}

附:MIME 类型定义标准和出处

  • RFC-822: 表示 ARPA 因特网文字信息
  • RFC-2045 MIME Part 1:定义了因特网消息体格式
  • RFC-2046 MIME Part 2:定义了媒体类型的 MIME Type
  • RFC-2047 MIME Part 3:定义了非 ASCII 文本头部扩展
  • RFC-2048 MIME Part 4:定义了应用程序注册标准
  • RFC-2049 MIME Part 5:包含一致性准则的说明和一些示例