如何获取文件的内容类型

时间:2013-10-23 04:25:24

标签: c++ html unix

我正在实施一个处理GETHEAD请求的HTTP / 1.0服务器。

我已完成DateLast-ModifiedContent-Length,但我不知道如何获取文件的Content-Type

它必须返回目录的目录(我可以使用stat()函数执行),对于常规文件text/htmltexthtml文件, image/gif用于图片或gif文件。

这是否应该使用文件名进行硬编码?

我想知道是否有任何功能可以获得此Content-Type

2 个答案:

答案 0 :(得分:0)

您可以查看文件扩展名(这是大多数Web服务器执行的操作 - 请参阅例如/etc/mime.types文件;或者您可以使用libmagic通过查看文件来自动确定内容类型文件的前几个字节。

答案 1 :(得分:0)

这取决于你想成为多么复杂。

如果有问题的文件都已正确命名,并且只有几种类型需要处理,那么基于交换机的文件后缀就足够了。走向极端情况,无论文件是什么,做出正确的决定可能需要复制Unix file命令的功能或在有问题的文件上运行它(然后将输出转换为正确的{{1 }})。