PHP fileinfo是未定义的函数

时间:2010-08-26 20:08:32

标签: php mime-types undefined-function

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

  

致命错误: /home/jobynadel/finadel.com/video/finfo.php 中未找到类'finfo' 4

  

致命错误 /home/jobynadel/finadel.com/video/finfo.php 4 上调用未定义的函数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));

8 个答案:

答案 0 :(得分:95)

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

应该有类似于

的行
extension=fileinfo.so

在你的php.ini文件中

答案 1 :(得分:27)

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

答案 2 :(得分:20)

你有什么版本的PHP? PHP 5.3.0及更高版本内置了Fileinfo,但在Windows上,您必须在php.ini中手动启用它。您可以找到更多信息in the documentation

答案 3 :(得分:9)

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

答案 4 :(得分:5)

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

extension=php_fileinfo.dll

即。从

中删除前面的分号
;extension=php_fileinfo.dll

请记住重新启动Apache以使新 php.ini 生效。

答案 5 :(得分:1)

对于那些已经正常工作的人,但是出现了这个错误:

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

~/.php/5.4/phprc

如果升级PHP(或代表您升级),路径中的版本号可能会出现问题。新版本中将缺少先前版本中的任何自定义设置,包括启用fileinfo扩展的设置。通常,您只需将配置文件复制到相应的新配置目录,然后重新启动服务器即可。

答案 6 :(得分: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服务器。

答案 7 :(得分:0)

对于PHP 7.3或更高版本

更改

;extension=fileinfo

收件人

extension=fileinfo

在php.ini文件中。