2008-10-13 5 views
3

Я знаю, что mime_content_type() устарел, но мне показалось, что альтернатива на данный момент хуже. Finfo, по-видимому, требует добавления файлов и изменения направлений в окнах; Я не хочу требовать этого для сценария, который я делаю.PHP mime_content_type() fail на windows

Мне нужно найти mimetype файлов, но при вызове mime_content_type($filename) на windows это не удается. mime_magic.magicfile указывает на правильный файл, но при включении 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 включена в ини файле и httpd.conf определяет

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

Я использую XAMPP 1.6.5.

ответ

1

Это может быть связано с this bug report. У вас есть ошибки в вашем журнале ошибок при вызове сценария по строкам 'FOO' is not a valid mimetype, entry skipped?

К сожалению, окончательный ответ в этой конкретной теме было идти вперед и использовать Fileinfo ..

Чтение через another thread описывая ту же проблему - при включении отладки, вы установите его в положение «On» или 1? Не имеет значения, но в потоке, связанном выше, это похоже на часть решения в этом случае.


Я не уверен, что это проблема, или если это все еще происходит, когда я отключить отладку, и он просто не говорит мне.

Что вы получаете, когда вы эхо вне значения mime_content_type с отключенной отладкой?

+0

Я не мог заставить его работать с любыми предлагаемыми решениями, размещенными в потоке, и исходный плакат также сдался. Опять же, я не мог заставить его работать с Fileinfo либо :-( – RobbieGee 2008-10-13 13:33:56

0

Finfo, кажется, требует добавления файлов и изменения направлений ini на окнах; Я не хочу требовать этого для сценария, который я делаю.

Вы попробовали finfo_buffer? Это позволяет использовать файл в виде строки, так что вы можете сделать:

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

также вопрос из этого сообщения об ошибке в том, что база данных мима устарела - вы пробовали с другой копией?