C++ 如何获取文件的内容类型
我正在实现一个HTTP/1.0服务器,它处理C++ 如何获取文件的内容类型,c++,html,unix,C++,Html,Unix,我正在实现一个HTTP/1.0服务器,它处理GET或HEAD请求 我已经完成了日期、上次修改和内容长度,但我不知道如何获取文件的内容类型 它必须为目录返回目录(我可以使用stat()函数),对于常规文件,text/html为text或html文件,而image/gif为图像或gif文件 是否应该使用文件名对其进行硬编码 我想知道是否有任何函数可以获取此内容类型您可以查看文件扩展名(这是大多数web服务器所做的——例如,请参阅/etc/mime.types文件;或者您可以使用libmagic通过查
GET
或HEAD
请求
我已经完成了日期
、上次修改
和内容长度
,但我不知道如何获取文件的内容类型
它必须为目录返回目录(我可以使用stat()
函数),对于常规文件,text/html
为text
或html
文件,而image/gif
为图像或gif
文件
是否应该使用文件名对其进行硬编码
我想知道是否有任何函数可以获取此内容类型
您可以查看文件扩展名(这是大多数web服务器所做的——例如,请参阅/etc/mime.types
文件;或者您可以使用libmagic
通过查看文件的前几个字节来自动确定内容类型。这取决于您想要的复杂程度
如果所讨论的文件都有正确的名称,并且只有几种类型需要处理,那么使用基于开关的文件后缀就足够了。在极端情况下,无论文件是什么,做出正确的决定都可能需要复制Unixfile
命令的功能,或者在questi中的文件上运行它打开(然后将输出转换为适当的内容类型
)