2009-11-17 126 views
0

我正在使用PHP 5.3,并且已经检查过我的文件信息已启用。但是当我运行我的代码及其发生的错误fileinfo_open()致命错误

Fatal error: Call to undefined function finfo_open()

任何人都可以帮我解决了这个问题,这里是我的代码。

$mime=finfo_open(FILEINFO_MIME,filename); 
     echo "File Type is: ".$mime; 

回答

0

“文件名”需要是包含“MIME魔术”数据库的文件。如果要确定文件的类型,首先需要打开MIME数据库,然后请求该数据库来识别该文件。

例如,如果在MIME数据库存储在/usr/share/misc/magic.mgc(大多数Linux发行版存储它那里),你可以这样做:

// open MIME database 
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic.mgc"); 
if (!$finfo) 
    die("error opening MIME info database"); 

// print out MIME information of "some-file-name-here" 
echo finfo_file($finfo, "some-file-name-here"); 

finfo_close($finfo); 

但是,如果这是一个虚拟主机提供商,您可能需要复制将magic.mgc文件放入您的公共Web目录中。

+0

对不起,现在这个答案是无关紧要的,因为提问者更新了他的问题。 – intgr 2009-11-17 10:52:31

0

也许你错过了php.ini中的一些配置。要么你没有扩展(或动态库)打开或作为建议here php.ini中的一行。

清单:

  • 有没有在你的php.ini enable_dl = On一条线吗?

  • 你有一条线extension=fileinfo.so

+0

我检查了我的php.ini文件和enable_dl =在我发现这个和扩展名= php_fileinfo.dll而不是扩展名= fileinfo.so – 2009-11-17 11:15:01

+0

您正在使用Windows然后......您是否在安装扩展后重新启动您的apache服务器? – stefita 2009-11-17 13:09:38