65

每当我尝试从 php 获取 mime 内容类型时,它都会回显:

致命错误:在第4行的/home/jobynadel/finadel.com/video/finfo.php中找不到类“finfo”

或者

致命错误:在第4行调用/home/jobynadel/finadel.com/video/finfo.php中未定义的函数 finfo_open

我就是想不通!

我正在使用的代码是:

$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));
4

8 回答 8

95

查看您的 php.ini 文件并检查fileinfo.soorphp_fileinfo.dll是否已激活(取决于您的平台和版本)。

应该有一条类似于

extension=fileinfo.so

在你的 php.ini 文件中

于 2010-08-26T20:10:52.287 回答
28

如果您使用 XAMPP,请extension=php_fileinfo.dll在 php.ini 中启用

于 2014-07-04T01:30:26.020 回答
20

你有什么版本的PHP?PHP 5.3.0 及更高版本内置了 Fileinfo,但在 Windows 上,您必须在php.ini. 您可以在文档中找到更多信息。

于 2010-08-26T20:12:55.090 回答
9

如果您使用的是 WAMP,请转到 PHP 扩展并启用 PHP_fileinfo并重新启动所有服务器。

于 2013-12-06T06:36:06.930 回答
7

Windows 用户:只需编辑php.ini并取消注释此行:

extension=php_fileinfo.dll

即删除前面的分号

;extension=php_fileinfo.dll

记得重启 Apache 以使新的php.ini生效。

于 2016-06-02T20:14:49.563 回答
1

我对 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

然后保存并重新启动您的 Web 服务器。

于 2017-04-20T04:59:32.263 回答
1

对于那些已经正常工作的人,但随后出现此错误:

一些托管服务提供商(例如 Dreamhost)允许客户覆盖配置文件中的默认 PHP 设置,通常使用如下路径:

~/.php/5.4/phprc

如果您升级 PHP(或以您的名义升级),路径中的版本号可能会成为问题。旧版本中的任何自定义设置,包括启用 fileinfo 扩展的自定义设置,都将在新版本中丢失。通常您只需将配置文件复制到适当的新配置目录并重新启动服务器即可。

于 2016-11-06T22:22:22.563 回答
0

PHP 7.3 或更高版本

改变

;extension=fileinfo

extension=fileinfo

在 php.ini 文件中。

于 2020-11-19T09:46:07.853 回答