什么是TTF文件的MIME类型?

我找不到TrueType字体的正确MIME类型。 我需要它,因为我正在使用文件上传类(CodeIgniter)上传文件,并且我想只允许上传TTF。 试过这个:

'ttf'   =>  'font/ttf'
'ttf'   =>  'font/truetype'

没有成功。

有任何想法吗 ?


TTF没有指定MIME类型。 您将不得不使用更通用的application/octet-stream ,它用于指示没有指定MIME类型的二进制数据。


我已经看到用作TTF的MIME类型的font/ttfapplication/x-font-ttf 。 但是,如果您的文件以application/octet-stream形式上传,并且您不想仅仅信任.ttf文件扩展名(或者如果您想处理没有扩展名的文件),则必须检查文件内容以看看他们是否是TTF文件。 UNIX magic文件说TTF将以5个字节开始

00 01 00 00 00

(这是来自GDEF表格版本的00 01 00 00和来自GlyphClassDef表格偏移量的前导00

如果你的文件以这5个字节开头,那可能是TTF。


我知道这已经很老了,但似乎还没有人提供具体的示例修复。 所以在这里,我们为子孙后代:

我遇到了与Apache2和Chrome相同的问题。 Chrome会警告使用MIME类型的application / octet-stream发送的文件实际上是一个字体文件 - 它就是这样。

对我来说,修补程序是在我的apache2配置文件中添加以下行:

AddType application/x-font-ttf .ttf

PS:

我试图更新魔术文件,但在完整的apache2重新加载后失败。 我试过的匹配(使用字段之间的真正制表符,以及上面引用的魔法模式)如下:

  # True Type fonts
  0 string  0001000000  application/x-font-ttf
  0 string  0001000000  TrueType font data mime  application/x-font-ttf
链接地址: http://www.djcxy.com/p/46981.html

上一篇: What is the MIME type for TTF files?

下一篇: face with wrong MIME type in Chrome