【问题标题】:File permission 755 but PHP file_exists() returns false文件权限 755 但 PHP file_exists() 返回 false
【发布时间】:2014-01-02 05:59:04
【问题描述】:

我的主机上有一个图像文件。

  • FileZilla 表示已获得许可755 (-rwxr-xr-xr)

然而:

  • file_exists($path) 返回错误

可能的问题来源:

  • PHP 可能由于某种原因读取权限错误 - PHP 手册的读取文件权限示例(函数 fileperms($path))说文件权限是 -rwxr-xr-x

注意!:该文件可从网络浏览器访问 - 如果我将文件路径打印为 <img> 的 src 图像显示就可以了...is_file($path) 也返回 true

任何想法可能导致此问题? :)

EDIT1&2: 顺便说一句:PHP 检查路径:'./subfolder/subfolder2/filename.jpg',浏览器文件地址 - 'mydomain.com/testfolder/subfolder/subfolder2/filename.jpg' - 主脚本(其中包括另一个正在执行的脚本文件存在)在“测试文件夹”中 - 有什么问题吗?

当前文件夹 (getcwd()) 是“/data/web/virtuals/87454/virtual/www/testfolder” fopen($path) 不返回布尔值 false,也不会引发任何错误

【问题讨论】:

    标签: php file-permissions file-exists


    【解决方案1】:

    file_exists 不检查权限。如果它返回 false,则您正在检查错误的路径。 特别是如果它与您从浏览器访问的相同。

    【讨论】:

    • file_exists 的 PHP 手册:“警告此函数对由于安全模式限制而无法访问的文件返回 FALSE。但是,如果这些文件位于 safe_mode_include_dir 中,它们仍然可以包含在内。”
    • 所以?你说的安全模式是什么?
    • 根据我的经验,如果文件对执行 file_exists 函数的脚本没有读取权限,file_exists 可以返回 false
    • 没有魔法。如果 file_exists 说没有文件 - 没有。就如此容易。检查你的路径。 echo getcwd() 查看当前目录是什么。
    • 哈哈,这是一个错字! (变量 x 中的 n 而不是 m) - 我应该删除这个问题吗? (但感谢您的 cmets 让我明白了 :))
    猜你喜欢
    • 2016-01-13
    • 2012-09-02
    • 2015-09-14
    • 2011-10-19
    • 2011-06-05
    • 2017-08-15
    • 2013-10-12
    • 1970-01-01
    • 2018-12-15
    相关资源
    最近更新 更多