为什么会出现“警告:文件(...):无法打开流”错误?

时间:2020-05-18 13:20:53

标签: php

请告诉我,为什么此代码中出现“ 警告:文件(...):无法打开流”错误?

    if (file("users/1/cover_user.png")) {
        echo '<img data-src="users/1/cover_user.png" uk-img>';
    }
    elseif (file("users/1/cover_user.jpg")) {
        echo '<img data-src="users/1/cover_user.jpg" alt="" uk-img>';
    }
    else {
        echo 'error';
    }

2 个答案:

答案 0 :(得分:0)

file命令将整个文件读入内存。

我认为这不是您想要的。似乎您想测试文件是否存在,请查看file_exists进行该测试。

这表示:您的警告意味着PHP无法在该位置找到文件。流行的原因是:

  1. 找不到具有该名称的文件
  2. 文件存在,但对于以PHP运行的用户(通常为www-data(在linux / gnu系统上)或IUSR(在ISS上))不可读。

仔细检查您的路径。也许使用完整路径。

您的if / elseif / else逻辑也使我感到困惑。

答案 1 :(得分:0)

  1. 您确定users/1/cover_user.png是正确的路径吗?
  2. 您是否具有读取权限以访问文件?

如果您使用的是Linux,请尝试以下命令:

chmod 0444 path/to/your/file/users/1/cover_user.png

您也可以尝试以下方法:

sudo chown -R www-data:www-data /your/project/path 

如果您在Windows上,请尝试从“属性”对话框中设置权限