找不到finfo路径

时间:2010-02-26 07:59:12

标签: php

我在5.3.1上阅读文档后,我看到包含了fileinfo,不再需要pecl。我得到了:

  

finfo_file():找不到文件或路径

我不确定它在寻找什么。我在ini文件中启用了扩展,并尝试从PHP站点运行示例:

$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);

有人可以告诉我我需要哪个档案吗?

2 个答案:

答案 0 :(得分:2)

我刚刚从托管公司发现,在运行phpinfo():时会找到难以捉摸的magic.mime文件的路径,以查找条目“mime_magic.magicfile”。如果未列出,请与您的托管公司联系,并解释您需要PHP finfo()的此文件和路径。为我工作。

答案 1 :(得分:0)

您需要配置您的环境,以便PHP知道“魔术数据库文件”的位置,或者,作为另一种可能性,在调用fileinfo_open时,您需要指定魔术数据库文件的路径 (引用)

  

通常,魔术数据库文件的名称   像/path/to/magic.mime这样的东西。如果
  未指定,MAGIC环境   使用变量。
如果这个变量是   没有设置,/usr/share/misc/magic   默认情况下使用。一个.mime和/或   如果需要,可以添加.mgc后缀。


请参阅fileinfo_open手册页上给出的示例,例如(引用)

$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension

if (!$finfo) {
    echo "Opening fileinfo database failed";
    exit();
}

/* get mime-type for a specific file */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* close connection */
finfo_close($finfo);

当然,由您决定在您的系统上找到该文件的位置......