我正在使用fileinfo来获取MIME类型和描述。 目前我创建了两个finfo对象,如下所示:
$x = new finfo(FILEINFO_NONE, ....);
print $x->file($filename);
print '\n';
$x = new finfo(FILEINFO_MIME, ....);
print $x->file($filename);
这导致如下:
application/pdf; charset=binary
PDF document, version 1.2
它对我来说很好,但有没有办法在一次通话中获取描述和mime信息?
答案 0 :(得分:2)
$x = new finfo(FILEINFO_NONE, ....);
print $x->file($filename);
print '\n';
print $x->file($filename, FILEINFO_MIME);
答案 1 :(得分:0)
这是未经测试的,但文档指出finfo_open()
的第一个参数接受“更多Fileinfo常量的一个或分离”,这意味着我们应该能够OR
一起使用几个常量:
$x = new finfo(FILEINFO_NONE | FILEINFO_MIME, ...);
答案 2 :(得分:0)
如果要恢复旧值,不使用字符集,PHP 5.3引入了FILEINFO_MIME_TYPE常量。从FILEINFO_MIME切换到FILEINFO_MIME_TYPE
if( class_exists('finfo')&&defined('FILEINFO_MIME'))
{
$finfo = new finfo(FILEINFO_MIME);
return $finfo->file($_FILE['tempname']);
}
例如对于php_file返回: 文本/ X-PHP;字符集= UTF-8
但是代码如下:
if( class_exists('finfo')&&defined('FILEINFO_MIME_TYPE'))
{
$finfo = new finfo(FILEINFO_MIME_TYPE);
return $finfo->file($_FILE['tempname']);
}
用于php_file返回: 文本/ X-PHP
请参阅以下链接: http://debugsober.com/blog/PHP-53-Fileinfo-and-weird-mime_type-charsets