我在INI文件中有一个mimetype扩展名列表。但是,某些扩展名有多个mimetypes,例如;
midi[] = "application/x-midi"
midi[] = "audio/midi"
midi[] = "audio/x-mid"
midi[] = "audio/x-midi"
midi[] = "music/crescendo"
midi[] = "x-music/x-midi"
6(可能)mimetypes 1延长。确定正确的mimetype的常见做法是什么? (例如,我需要设置HTTP内容类型标头)。
我知道它不理想;根据扩展确定mimetypes ..但我需要一致的(跨服务器)结果(例如PHP中的fileinfo扩展正在做出可怕的猜测*)。
*某些fileinfo结果例如;
答案 0 :(得分:1)
在一天结束时,你所拥有的最好的是文件扩展名。
对于明确的列表,请在apache源代码树中找到它: 文档/ CONF /的mime.types
答案 1 :(得分:0)
我最终想出的是以下内容;
首先我使用“FileInfo”进行100%(已知)匹配(例如gif,jpeg,png),因为我确实希望依赖于某些文件的“指纹”检测。
如果上面的失败,我会回到“扩展2 mimetype”地图上;基于docs / conf / mime.types(我过滤了所有常用文件;例如图像,音频,视频,网络,文本)
如果仍未找到匹配项,我再次使用“FileInfo”;允许任何结果。
此时,如果仍未设置mimetype,则返回“application / octet-stream”硬编码。