[英]How to get the content-type of a file
我正在实现一个处理GET
或HEAD
请求的HTTP / 1.0服务器。
我已经完成了Date
, Last-Modified
和Content-Length
,但是我不知道如何获取文件的Content-Type
。
它必须返回目录的目录(我可以使用stat()
函数执行此操作),并返回常规文件的目录,对于text
或html
文件,返回text/html
,对于图像或gif
文件,返回image/gif
。
是否应该使用文件名对其进行硬编码?
我想知道是否有任何函数来获取此Content-Type
。
您可以查看文件扩展名(大多数Web服务器都执行此操作-参见例如/etc/mime.types
文件;也可以使用libmagic
通过查看文件的前几个字节来自动确定内容类型。 。
这取决于您想要变得多么复杂。
如果有问题的文件都被正确命名,并且只有几种类型可以处理,那么具有基于开关的文件后缀就足够了。 在极端情况下,无论文件是什么,做出正确的决定都可能需要复制Unix file
命令的功能或在有问题的文件上运行它(然后将输出转换为适当的Content-Type
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.