3

我知道 mime_content_type() 已被弃用,但在我看来,目前的替代方案更糟。Finfo似乎需要在 Windows 上添加文件和更改 ini 方向;我不想为我正在制作的脚本要求这个。

我需要找到文件的 mimetype,但是mime_content_type($filename)在 windows 上调用时它失败了。mime_magic.magicfile 指向正确的文件,但是在 ini 文件中启用 mime_magic.debug 时,我收到以下错误消息:

Warning: mime_content_type()[http://www.php.net/mime_magic]: mime_magic not initialized in C:\xampp\htdocs\test.php on line 2

我不确定这是否是一个问题,或者当我禁用调试时它是否仍然发生并且它只是没有告诉我。

我检查了,并extension=php_mime_magic.dll在 ini 文件中启用,httpd.conf 指定

LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so

我正在使用 XAMPP 1.6.5。

4

3 回答 3

1

这可能与此错误报告有关。当您按照以下方式调用脚本时,您的错误日志中是否有任何错误'FOO' is not a valid mimetype, entry skipped

不幸的是,该特定线程中的最终响应是继续使用Fileinfo..

阅读描述相同问题的另一个线程- 当您打开调试时,您是否将其设置为“开”或 1?不应该有所作为,但在上面链接的线程中,这似乎是这种情况下解决方案的一部分。


我不确定这是否是一个问题,或者当我禁用调试时它是否仍然发生并且它只是没有告诉我。

mime_content_type当您在关闭调试的情况下回显 的值时,您会得到什么?

于 2008-10-13T13:08:43.960 回答
0

Finfo 似乎需要在 windows 上添加文件和更改 ini 方向;我不想为我正在制作的脚本要求这个。

你试过finfo_buffer吗?这允许您将文件用作字符串,因此您可以执行以下操作:

$finfo = new finfo;
$filename = $_GET['filename'];
var_dump($finfo->buffer(file_get_contents($filename)));

该错误报告中还有一个问题是 mime 数据库已过时 - 您是否尝试过使用不同的副本?

于 2008-10-13T21:32:32.587 回答
0

Fileinfo 可能是在 Windows 上运行的一个技巧。此处的说明:http: //forums.zend.com/viewtopic.php?f=8& t=337#p14681

于 2009-11-10T20:04:28.770 回答