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,旧服务器配置可能需要手动补充。

操作步骤

  1. 确定文件扩展名,在速查表查到对应 MIME
  2. 按需求配置服务器映射或接口响应头
  3. 需要强制下载时加 Content-Disposition: attachment
  4. 用浏览器实际访问验证预览 / 下载行为

常见问题

设置对了 MIME 还是不生效?

检查是否被 Content-Disposition: attachment 覆盖;另外响应头 X-Content-Type-Options: nosniff 时,MIME 必须准确,否则浏览器会拒绝执行。

查询 MIME 类型会上传文件吗?

不会。速查表数据内置在页面中,搜索与复制均在浏览器本地完成,不读取也不上传任何文件。