我知道mime_content_type()已被弃用,但在我看来,替代方案目前更糟。 Finfo
似乎需要在Windows上添加文件和更改ini方向;我不想为我正在制作的剧本要求这个。
我需要找到文件的mimetype,但是在Windows上调用mime_content_type($filename)
时它会失败。 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
我不确定这是否是一个问题,或者当我禁用调试时它仍然会发生,它只是没有告诉我。
我检查过,ini文件中启用了extension=php_mime_magic.dll
,httpd.conf指定了
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
我正在使用XAMPP 1.6.5。
答案 0 :(得分:1)
这可能与this bug report有关。当您按'FOO' is not a valid mimetype, entry skipped
行调用脚本时,错误日志中是否有任何错误?
不幸的是,该特定线程中的最终响应是继续使用Fileinfo
..
阅读another thread描述同样的问题 - 当你打开调试时,你是否将它设置为“On”或1?不应该有所作为,但在上面链接的线程中,这似乎是解决方案的一部分。
我不确定这是否是一个问题,或者当我禁用调试时它仍然会发生,它只是没有告诉我。
如果在调试关闭的情况下回显mime_content_type
的值,您会得到什么?
答案 1 :(得分:0)
Finfo似乎需要在Windows上添加文件和更改ini方向;我不想为我正在制作的剧本要求这个。
你试过finfo_buffer
吗?这允许您将文件用作字符串,因此您可以这样做:
$finfo = new finfo;
$filename = $_GET['filename'];
var_dump($finfo->buffer(file_get_contents($filename)));
此错误报告中的一个问题是mime数据库已过期 - 您是否尝试使用其他副本?
答案 2 :(得分:0)
Fileinfo可以成为Windows上的一个技巧。这里的说明:http://forums.zend.com/viewtopic.php?f=8&t=337#p14681