文件扩展名与 MIME 类型对照速查
常见扩展名对应哪个 MIME 类型、属于什么类别、该用什么打开,以及为什么改扩展名并不会真的改变文件格式。
扩展名是给人和系统看的「标签」,MIME 类型是网络传输时用来声明内容类型的「正式名称」。两者通常成对出现,但经常对不上——服务器按扩展名猜类型、上传接口按 MIME 做校验、浏览器按 MIME 决定怎么渲染,任何一环不一致都会出问题。
这篇把常见格式按五类整理成对照表,最后单独说明一件事:扩展名是可以随便改的,它不决定文件里到底是什么——真正决定格式的,是文件开头的几个字节。
1文本与数据类
这一类的共同点是内容可读、可以用文本编辑器直接打开。其中 CSV、JSON、YAML 三种都是结构化数据,区别在于书写习惯和适用场景。
| 扩展名 | MIME 类型 | 典型用途 |
|---|---|---|
.txt | text/plain | 纯文本,无格式 |
.md | text/markdown | 轻量标记文档,常见于说明文件与博客 |
.csv | text/csv | 表格数据交换,Excel 与数据库都能读写 |
.json | application/json | 结构化数据,接口传输的事实标准 |
.xml | application/xml | 结构化数据,老系统与政务接口常见 |
.yaml / .yml | application/yaml | 配置文件,靠缩进表达层级 |
.html | text/html | 网页 |
.css | text/css | 样式表 |
.js | text/javascript | 脚本文件 |
.pdf | application/pdf | 版式固定的文档,跨平台显示一致 |
2图片类
图片格式的差异集中在三点:是否有损、是否支持透明、是否支持动画。记住这三点,选格式基本不会错;具体怎么选可以参考图片格式的选型指南。
| 扩展名 | MIME 类型 | 特点 |
|---|---|---|
.jpg / .jpeg | image/jpeg | 有损压缩,照片首选;不支持透明,文字边缘易出杂色 |
.png | image/png | 无损压缩,支持透明;截图、图标、线稿图的正确选择 |
.gif | image/gif | 仅 256 色,支持动画;体积偏大,已基本被 WebP 取代 |
.webp | image/webp | 有损/无损均可,支持透明与动画;同画质下比 JPG 明显更小 |
.avif | image/avif | 新一代格式,压缩率更高;编码较慢,老设备兼容性稍弱 |
.svg | image/svg+xml | 矢量图,任意缩放不失真;本质是 XML 文本 |
.heic | image/heic | 苹果设备默认照片格式,体积小但兼容性差 |
.bmp | image/bmp | 未压缩位图,体积巨大,基本不再使用 |
.tiff | image/tiff | 印刷与扫描场景,支持多页与无损 |
.ico | image/x-icon | 站点图标,可内含多个尺寸 |
3音视频类
音视频要先分清「容器」和「编码」:.mp4、.mkv 是容器(盒子),H.264、AAC 是编码(盒子里的东西)。同一个容器可以装不同编码,这也是「改了扩展名体积却没变」的原因。
| 扩展名 | MIME 类型 | 说明 |
|---|---|---|
.mp3 | audio/mpeg | 有损音频,兼容性最好 |
.wav | audio/wav | 未压缩音频,体积大,剪辑中间产物常用 |
.flac | audio/flac | 无损压缩音频,体积约为 WAV 的一半 |
.aac / .m4a | audio/aac / audio/mp4 | 有损音频,同码率下优于 MP3 |
.ogg | audio/ogg | 开放格式,游戏与网页音频常用 |
.mp4 | video/mp4 | 兼容性最好的视频容器 |
.webm | video/webm | 开放容器,网页视频常用 |
.mov | video/quicktime | 苹果生态的视频格式,剪辑工程常见 |
.mkv | video/x-matroska | 可装多音轨多字幕,适合存档 |
.avi | video/x-msvideo | 老式容器,兼容但效率低 |
4压缩与归档类
要区分「打包」和「压缩」两件事:tar 只把多个文件合成一个(不减小体积),gz 只压缩单个文件。所以 Linux 下常见的 .tar.gz 是两者串联——先打包再压缩。
| 扩展名 | MIME 类型 | 说明 |
|---|---|---|
.zip | application/zip | 跨平台通用,支持分卷与加密;Windows 原生支持 |
.7z | application/x-7z-compressed | 压缩率通常最高,需要专用工具解压 |
.rar | application/vnd.rar | 压缩率高,但压缩端需授权工具 |
.tar | application/x-tar | 仅打包不压缩,保留权限等元信息 |
.gz | application/gzip | 单文件压缩,常与 tar 组合成 .tar.gz |
.tar.gz / .tgz | application/gzip | 打包加压缩,Linux 下最常见的分发格式 |
5办公文档类
现代 Office 格式(带 x 后缀的那些)本质上是 ZIP 压缩包,里面装着 XML 与资源文件。这不只是冷知识——它意味着 .docx 改名为 .zip 后可以直接解开,也是很多批量处理工具的底层原理。
| 扩展名 | MIME 类型 | 说明 |
|---|---|---|
.docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document | Word 文档(2007 之后) |
.xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | Excel 工作簿(2007 之后) |
.pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation | PowerPoint 演示文稿(2007 之后) |
.doc / .xls / .ppt | application/msword 等 | 旧版二进制格式,MIME 各不相同 |
.odt / .ods / .odp | application/vnd.oasis.opendocument.* | OpenDocument 开放格式,WPS 与 LibreOffice 支持 |
6判断真实格式:扩展名不可信
把 photo.png 改名成 photo.jpg,文件内容一个字节都没变,它仍然是 PNG——扩展名只是文件名的一部分,不参与内容的编码。真正决定格式的是文件开头的一段字节,业内叫「魔数」(magic number)。
- 为什么重要
- 服务器常按扩展名设置 Content-Type,浏览器按这个头决定怎么处理文件。扩展名与实际内容不符时,会出现「图片打不开」「下载的文件当成了网页」这类问题
- PNG
- 开头是 89 50 4E 47
- JPG
- 开头是 FF D8 FF
- GIF
- 开头是 47 49 46 38(即 GIF8 的 ASCII 码)
- 开头是 25 50 44 46(即 %PDF)
- ZIP 系(含 docx / xlsx)
- 开头是 50 4B 03 04(即 PK 的 ASCII 码)
- 不改动内容也能改类型
- 把 .exe 改成 .zip 就能用解压工具打开——很多自解压程序与部分安装包就是这么打包的;反过来,把文档改名成 .jpg 也骗不过按文件头校验的程序
看完就能用的站内工具
全部工具总览 →关于「文件扩展名与 MIME 类型对照速查」的常见问题
把 .png 改成 .jpg 就等于转换格式了吗?
不等于。改扩展名只是改了文件名,文件内部的编码方式完全没变,体积、画质、透明通道全都保持原样。真正的格式转换需要重新编码,把像素数据按目标格式的算法重新压缩——这才会改变体积和画面质量。很多「改了后缀还是打不开」的情况,根源就在这里。
上传文件时提示「文件类型不被允许」是怎么回事?
服务端通常做两层校验:先看扩展名是否在白名单里,再看请求头的 Content-Type 是否匹配。两处任一不符都会拒绝。常见原因有三:扩展名大小写不统一(.JPG 与 .jpg 被当成不同项)、浏览器推断的 MIME 不在白名单(如 .md 被识别成 text/plain 或 text/markdown)、把图片改名绕校验但 MIME 仍是原类型。排查时先看接口返回的具体提示,再对照服务端的白名单规则。
怎么判断一个文件真实是什么格式?
看文件开头几个字节(文件头)。PNG 以 89 50 4E 47 开头,JPG 以 FF D8 FF 开头,PDF 以 %PDF 开头,ZIP 与 Office 新格式以 PK 开头。用十六进制查看器打开就能看到,也可以用站内的文件哈希工具配合 MD5 比对官方发布的校验值,确认文件是否是原始版本。
.tar.gz、.tgz 和 .zip 有什么区别?
.zip 是打包加压缩一体,Windows 与 macOS 都能直接双击解压;.tar 只打包不压缩,主要用于保留 Linux 的文件权限与所有者信息;在此基础上再用 gzip 压缩一次就是 .tar.gz,.tgz 是它的简写形式。所以 .tar.gz 是「两层」——要先解压成 .tar,再拆包。分层设计让 .tar 可以搭配不同压缩算法(gzip、bzip2、xz)。
继续查:相关内容
全部速查 →内容说明:本页速查数据由本站自行整理,事实性内容以对应官方规范与文档为准,未复制第三方速查表或百科的表述。数据最后核对日期:2026-10-05。若发现错误或已更新的标准,欢迎通过页脚反馈入口告知。
速查在线工具箱