如何修复 PHP 中 MIME 类型的“识别数据失败 0:未加载魔术文件”错误?

Bhu*_*hah 3 php

我已经尝试了两种选择:

  1. mime_content_type 函数

    echo mime_content_type($img_path);
    
    Run Code Online (Sandbox Code Playgroud)
  2. finfo 函数

    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    echo finfo_file($finfo, $img_path);
    finfo_close($finfo);
    
    Run Code Online (Sandbox Code Playgroud)

但我在这两种情况下都出错

“警告:finfo_file():识别数据失败 0:未加载魔法文件”

我不明白这有什么问题?

小智 6

对于将来想知道的人,原始发布者可能将外部 URL 设置为路径——“mime_content_type”和“finfo”函数都只能在本地路径上运行,而不能在外部 URL 上运行。

例子:

// Local file path
echo mime_content_type("image.gif"); 
Run Code Online (Sandbox Code Playgroud)

将返回:图像/gif

// External file path
echo mime_content_type("http://localhost/image.gif");
Run Code Online (Sandbox Code Playgroud)

将返回“警告:mime_content_type():识别数据失败 0:未加载魔术文件”

可以在 PHP.net 上的手册中找到回退版本和有关这些函数使用的更多信息:mime_content_type:http ://php.net/manual/en/function.mime-content-type.php

finfo 函数:http ://php.net/manual/en/book.fileinfo.php