在iOS中使用Swift如何从MIME类型获取文件扩展名
根据MIME类型匹配文件扩展名的实用方法
嘿,这个需求太常见了!当你手里有文件的MIME类型,要确定存储时该用什么扩展名,我给你整理几个靠谱的方案:
借助系统内置的MIME映射表
几乎所有操作系统都维护了官方的MIME与扩展名对应关系:- Windows:可以调用
AssocQueryStringAPI查询,或者手动翻注册表HKEY_CLASSES_ROOT\MIME\Database\Content Type下的条目; - Linux:直接查看
/etc/mime.types文件,或者用mimeopen -d [MIME类型]命令快速查询; - macOS:查看
/private/etc/apache2/mime.types文件,或者用mdls工具辅助验证(不过已知MIME的话,直接查映射表更高效)。
- Windows:可以调用
用编程语言的内置工具省事儿
主流语言基本都自带处理MIME类型的库,不用自己硬写映射:- Python:用标准库
mimetypes就行,示例代码:import mimetypes # 传入MIME类型,返回带点号的扩展名 extension = mimetypes.guess_extension('image/jpeg') print(extension) # 输出 .jpeg - JavaScript(Node.js环境):用
mime-types包(npm安装后),示例:const mime = require('mime-types'); const ext = mime.extension('application/pdf'); console.log(ext); // 输出 pdf - C#:可以用
System.Web.MimeMapping.GetMimeMapping反向查询扩展名,或者借助System.Net.Mime.MediaTypeNames类辅助匹配。
- Python:用标准库
常见映射快速参考(应急用)
要是你只处理高频MIME类型,直接记这些对应关系就行:text/plain→.txtapplication/pdf→.pdfapplication/json→.jsonimage/png→.pngimage/jpeg→.jpg/.jpegaudio/mpeg→.mp3video/mp4→.mp4
需要注意的是,部分MIME类型可能对应多个扩展名(比如text/html可以是.html或.htm),这时候选最通用的那个就好,或者根据你的业务需求来定。
内容的提问来源于stack exchange,提问作者Matt Lacey
相关产品推荐
相关产品推荐

