【问题标题】:After updating PHP version 7.3 to 7.4, facing Warning: finfo::file(): Failed identify data 0:cannot read `(null)' in myfunction()将 PHP 版本 7.3 更新到 7.4 后,面临警告:finfo::file(): Failed identify data 0:cannot read `(null)' in myfunction()
【发布时间】:2021-07-19 11:20:49
【问题描述】:

警告:finfo::file(): 识别数据失败 0: 无法在 myfunction() 中读取 `(null)'

这是我的代码:

function myfunction($file) {
  $finfo = new finfo(FILEINFO_MIME_TYPE);
  $content_mime = $finfo->file($file->uri); 
}

我们得到了 PHP7.3 的 mime 类型,但 PHP7.4 没有 只有PHP版本不一样。

注意:我在这里找到了一些针对 PHP 7.4 错误的补丁:https://bugs.php.net/bug.php?id=79681,但我不知道如何使用它。

请帮助我,在此先感谢。

【问题讨论】:

  • 好像$file->uri返回null,你调试了吗?
  • 看起来您的问题出在 $file 对象中,而不是在 FInfo 类中。你如何派生 $file 对象?
  • 我们在这两种情况下都有相同的$file->uri,PHP 7.3 和 7.4 如屏幕截图所示$file object@simone-rossaini @LSerni

标签: php php-7.4


【解决方案1】:

对于 finfo 对象,我们可以使用 buffer 函数代替 file。 在下面找到更新的代码。

function myfunction($file) {
  $finfo = new finfo(FILEINFO_MIME_TYPE);
  $content_mime = finfo->buffer(file_get_contents($file->uri));
}

它适用于我(适用于 PHP 7.4)并按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-23
    • 2017-03-31
    • 1970-01-01
    • 2014-07-24
    • 2020-10-09
    • 1970-01-01
    • 2018-06-01
    • 2020-10-08
    相关资源
    最近更新 更多