文件类型核对
网络所有处理都在浏览器本地完成,数据不上传服务器
拖一个文件进来,把浏览器报告的类型(由后缀名推出来)与实测的文件头摆在一起对照。 为什么两条线索都要看:后缀是声明,改个名字就能骗过去,而多数程序恰恰只看它;文件头是事实,格式规范规定的,改名改不掉。两者一致时没什么可说,不一致时受伤的总是按后缀处理的那一方 —— 一个 `.jpg` 其实是 PNG,老图片查看器、按扩展名挑解析器的上传接口就会读不出来或读出乱码。 ⚠️ 两种「不一致」区别对待:`.zip` 报成 `application/x-zip-compressed` 只是同一个格式的另一种写法(命名差异,不算问题);`.jpg` 的文件头其实是 PNG 才是真的不符,会给警告并说清后果。识别用的是「文件头识别」那一份签名表,文件不上传,全部在本机完成。
功能
- 对照三样东西:文件后缀、浏览器报告的 MIME(没给会写明)、实测的文件头类型
- 识别复用「文件头识别」的同一份签名表,不另立一套
- ⚠️ 区分「命名差异(无害)」与「真的不符」—— .zip / application/x-zip-compressed 不报警
- ⚠️ 真的不符时给警告并说明后果:按后缀处理的程序会读不出来
- 没有扩展名不算不符(没有声明与声明错了是两回事)
- 认不出文件头时如实说,不硬套一个类型
- ZIP 家族的 .docx / .xlsx / .jar 不会被误报
- 文件不上传,全部在本机完成
使用方法
- 把文件拖进上面的区域(或点击选择文件)
- 看三行原始信息:后缀、浏览器报告的 MIME、实测类型
- 看「结论」一行:一致 / 命名差异(无害)/ 不符,以及说明
常见问题
- 为什么只看后缀不够,还要看文件头?
- 因为后缀只是一段可以随便改的文本 —— 把 a.png 改名成 a.jpg,后缀就变了,而文件里一个字节都没动。文件头(前几个字节)是格式规范规定的,改名改不掉。多数程序只信后缀,所以后缀与文件头不一致时它们会读错;这个工具就是把这两条线索摆在一起,让你在把文件发出去或传上去之前先看到矛盾。
- .zip 显示成 application/x-zip-compressed,要修吗?
- 不用。这是同一个格式的另一种写法(Windows 等系统常这么报),与内容并不矛盾,工具会判成「命名差异(无害)」而不是警告。把命名差异也一律报成问题,只会让你学会忽略这个工具的结论 —— 所以这里刻意区分:.zip 报成 application/x-zip-compressed 不算问题,.jpg 其实是 PNG 才算。
- 为什么 docx 不会被判成「不是 ZIP」?
- 因为 docx 本来就是 ZIP 容器(xlsx / pptx / jar / apk 也是),文件头当然与 ZIP 一致。工具按扩展名是否落在实测格式声明的扩展名集合里判断,所以 .docx 不会被误报;浏览器把它报成 Office 的类型(而不是 application/zip)也属正常,只能算「无法对照」,不算冲突。
相关工具
文件头识别
网络从开头几个字节判断文件的真实类型。收录近 60 种常见格式,支持带偏移的签名,也能反查某个格式的 magic bytes。
MIME 类型
网络MIME 类型与扩展名双向查询:输入 js 得到 text/javascript,输入 image/svg+xml 得到默认扩展名。附数据来源与覆盖范围,全部本地完成。
文件哈希
编码拖入文件即可算出 MD5、SHA-1、SHA-256、SHA-512 与 CRC-32,用来校验下载是否完整、文件有没有被改过。文件不上传,全部在本机计算。
URL 解析
网络在线 URL 解析:拆出协议、主机、端口、路径、查询参数与锚点,参数逐个解码并与原始值对照,缺协议自动补 https://。全部在浏览器本地完成。
UA 解析
网络在线 User-Agent 解析:识别浏览器、版本、操作系统、设备类型与渲染引擎,并列出命中的匹配规则。结果基于模式匹配,仅供参考。全部在浏览器本地完成。
HTTP 状态码
网络HTTP 状态码查询与速查:输入编号查含义、1xx 到 5xx 分类、常见场景与排查提示,也能用关键词反查编号。全部在浏览器本地完成。