MIME 类型怎么配:上传下载与服务器配置
为什么 PDF 在浏览器里直接下载而不是预览?为什么上传图片被拦截?多数时候答案在 MIME 类型上。本文讲解 Content-Type 的配置要点与排查思路。
最近更新:2026年8月13日
需要马上处理?使用 MIME 类型速查 ,浏览器本地完成,不上传服务器。
打开 MIME 类型速查下载还是预览,由谁决定
浏览器对认识的 Content-Type(如 image/png、application/pdf)默认尝试预览;遇到 application/octet-stream 或带 Content-Disposition: attachment 头则直接下载。
想让用户预览就配正确的 MIME 并去掉 attachment;想强制下载就反过来,attachment 里还能指定文件名。
上传校验与常见坑
前端 input accept 与后端 Content-Type 校验都要写,但 MIME 由客户端声明、可伪造,安全场景必须结合文件内容(魔数)校验。
现代格式注意新旧写法:.js 是 text/javascript,.webp/.avif 分别是 image/webp、image/avif,旧服务器配置可能需要手动补充。
操作步骤
- 确定文件扩展名,在速查表查到对应 MIME
- 按需求配置服务器映射或接口响应头
- 需要强制下载时加 Content-Disposition: attachment
- 用浏览器实际访问验证预览 / 下载行为
常见问题
设置对了 MIME 还是不生效?
检查是否被 Content-Disposition: attachment 覆盖;另外响应头 X-Content-Type-Options: nosniff 时,MIME 必须准确,否则浏览器会拒绝执行。
查询 MIME 类型会上传文件吗?
不会。速查表数据内置在页面中,搜索与复制均在浏览器本地完成,不读取也不上传任何文件。