Fileinfo:MIME类型和描述

时间:2012-02-02 21:49:27

标签: php

我正在使用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信息?

3 个答案:

答案 0 :(得分:2)

呃,真的很简单,我不知道我以前怎么也看不到这个: 对于方法“file”,有第二个可选参数,如下所示:

$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