TTF文件的MIME类型是什么?

Cap*_*ppY 37 upload fonts mime

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

'ttf'   =>  'font/ttf'
'ttf'   =>  'font/truetype'
Run Code Online (Sandbox Code Playgroud)

没有成功.

有任何想法吗 ?

Ori*_*Ori 27

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

  • 使用application/x-font-ttf解决的@ChrisMoschini (4认同)

dka*_*arp 18

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

00 01 00 00 00
Run Code Online (Sandbox Code Playgroud)

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

如果您的文件以这5个字节开头,则可能是TTF.

  • @aditya:嗯,是的.这是一种启发式方法.如果OP*确实*想确定,他可以编写一个完整的验证TTF解析器.但检查前导十六进制"00 01 00 00 00"是从其内容中检测TTF文件的标准方法.将这5个字节放在文件`foo`中并从UNIX/Mac提示符调用`file foo`,`file`命令将响应"`foo:TrueType font data`". (4认同)

Geo*_*yar 14

截至2017年2月,RFC 8081添加了字体/*媒体类型,这些类型也列在IANA媒体类型列表中.font/ttf在此列表中.浏览器可能需要一些时间才能赶上.


Mic*_*ski 11

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

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

我的修复是在我的apache2配置文件中添加以下行:

AddType application/x-font-ttf .ttf

PS:

我曾尝试更新魔法文件但在完全apache2重新加载后无法正常工作.我尝试过的匹配(使用字段之间的真实制表符,以及上面引用的魔术模式)如下:

  # True Type fonts
  0 string  \000\001\000\000\000  application/x-font-ttf
  0 string  \000\001\000\000\000  TrueType font data mime  application/x-font-ttf


小智 7

现在有 ttf 和 otf 媒体类型。

请参阅: https: //www.iana.org/assignments/media-types/media-types.xml#font

ttf 是字体/ttf

otf 是字体/otf

woff 是字体/woff

woff2 是字体/woff2


ren*_*ene 5

我没有使用 codeigniter 的经验,但我倾向于相信正确的 mimetype 是:

application/x-font-ttf
Run Code Online (Sandbox Code Playgroud)

我不确定这是否能解决您的问题