PHP fileinfo - неопределенная функция - PullRequest
65 голосов
/ 27 августа 2010

Всякий раз, когда я пытаюсь получить тип содержимого MIME из php, он выдает:

Неустранимая ошибка: Класс 'finfo' не найден в / home / jobynadel / finadel.com / video / finfo.php on line 4

или

Фатальная ошибка: Вызов неопределенной функции finfo_open в / home / jobynadel / finadel.com / video / finfo.php on line 4

Я просто не могу понять!

Код, который я использую:

$file_info = new finfo(FILEINFO_MIME_TYPE);
// See constant value http://php.net/manual/en/fileinfo.constants.php#113687 
$mime_type = $file_info->buffer(file_get_contents($file));

Ответы [ 7 ]

95 голосов
/ 27 августа 2010

Просмотрите файл php.ini и убедитесь, что fileinfo.so или php_fileinfo.dll активированы (в зависимости от вашей платформы и версии).

Там должна быть строка, похожая на

extension=fileinfo.so

в вашем файле php.ini

27 голосов
/ 04 июля 2014

Если вы используете XAMPP, вы включаете extension=php_fileinfo.dll в php.ini

20 голосов
/ 27 августа 2010

Какая версия PHP у вас есть? В PHP 5.3.0 и более поздних версиях встроена Fileinfo, но в Windows вы должны включить ее вручную в php.ini. Вы можете найти дополнительную информацию в документации .

9 голосов
/ 06 декабря 2013

Если вы используете WAMP, перейдите к расширениям PHP и enbale PHP_fileinfo и перезапустите все серверы.

5 голосов
/ 02 июня 2016

Пользователи Windows: просто отредактируйте php.ini и раскомментируйте эту строку:

extension=php_fileinfo.dll

т.е. уберите предыдущую точку с запятой из

;extension=php_fileinfo.dll

Не забудьте перезапустить Apache, чтобы новый php.ini вступил в силу.

1 голос
/ 20 апреля 2017

У меня была такая же проблема с PHP. Я сделал следующие шаги:

 - make sure that the fileinfo extension is already installed if you are using < PHP 5.3.0.

 - Then you have to add in php.ini ;extension=fileinfo.so or
   ;extension=php_fileinfo.dll

 -  If you want to uncomment remove the semicolon(;)
   extension=fileinfo.so or extension=php_fileinfo.dll

Затем сохраните и перезапустите ваш веб-сервер.

1 голос
/ 07 ноября 2016

Для тех, у кого это работало нормально, но затем появляется эта ошибка:

Некоторые хостинг-провайдеры (например, Dreamhost) позволяют клиентам переопределять настройки PHP по умолчанию в файле конфигурации, часто используя путь, например:

~/.php/5.4/phprc

Этот номер версии в пути может быть проблемой, если вы обновляете PHP (или он обновляется от вашего имени). Любые пользовательские настройки из предыдущей версии, включая те, которые включают расширение fileinfo, будут отсутствовать в более новой версии. Обычно вы можете просто скопировать файл конфигурации в соответствующий новый каталог конфигурации и перезапустить сервер.

...