Всякий раз, когда я пытаюсь получить тип контента mime из php, это echos:
Неустранимая ошибка: Class 'finfo' не найден в /home/jobynadel/finadel.com/video/finfo.php в строке 4
или
Неустранимая ошибка: вызов неопределенной функции finfo_open в /home/jobynadel/finadel.com/video/finfo.php в строке 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));
Посмотрите файл php.ini и убедитесь, что файл php_fileinfo.dll
или php_fileinfo.dll
активирован (в зависимости от вашей платформы и версии).
Должна быть строка, подобная
extension=fileinfo.so
в файле php.ini
Если вы используете XAMPP, вы включаете extension=php_fileinfo.dll
в php.ini
Какая версия PHP у вас есть? PHP 5.3.0 и более поздние версии имеют встроенный Fileinfo, но в Windows вы должны включить его вручную в php.ini
. Дополнительную информацию вы можете найти в документации .
Если вы используете WAMP, перейдите на PHP-расширения и enbale PHP_fileinfo и перезапустите все серверы.
Пользователи Windows: просто отредактируйте php.ini и раскомментируйте эту строку:
расширение = php_fileinfo.dll
Т.е. удалить предыдущую точку с запятой из; extension = php_fileinfo.dll
Не забудьте перезапустить Apache, чтобы новый php.ini вступил в силу.
Для тех, у кого это работало нормально, но затем появляется эта ошибка:
Некоторые хостинг-провайдеры (например, Dreamhost) позволяют клиентам переопределять параметры PHP по умолчанию в файле конфигурации, часто с помощью чего-то типа:
~/.php/5.4/phprc
Этот номер версии в пути может быть проблемой при обновлении PHP (или он обновляется от вашего имени). Любые пользовательские настройки из предыдущей версии, включая один, включающий расширение fileinfo, будут отсутствовать в более новой версии. Обычно вы можете просто скопировать файл конфигурации в соответствующий новый каталог конфигурации и перезапустить сервер.
У меня была такая же проблема с 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
Затем сохраните и перезапустите веб-сервер.