我在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);
有人可以告诉我我需要哪个档案吗?
答案 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);
当然,由您决定在您的系统上找到该文件的位置......