【问题标题】:php - check if files exists in folder on network/lanphp - 检查文件是否存在于网络/局域网上的文件夹中
【发布时间】:2011-07-03 05:59:46
【问题描述】:

我想使用 php 检查网络文件夹中是否存在文件(例如 path = "U:\abc\def\")。

我尝试使用以下内容:

if(file_exists("U:/abc/def/400abc.doc")) {
    echo "YES";
} else {
    echo "NO";
}

我没有。我也试过 path = "//abc-drive/folder-main/abc/def/400abc.doc" 但还是不行。

文件位于网络/共享文件夹中,而不是运行 php 服务器的子文件夹中

谁能告诉HELP?

问候

【问题讨论】:

  • 你试过了吗 path = "\\abc-drivefolder-main\abc\def\400abc.doc"
  • 你的斜线在 Windows 上的方向是错误的。
  • 运行 PHP 的帐户是否有权访问该驱动器和文件夹树?
  • @Dan Grossman:在 php 中,您可以使用 /\ 。它们的行为方式完全一样。
  • 您好,感谢您的回复。我尝试了两种方法,但没有运气。是的,我的 apache 有权在该文件夹中读取和写入。问候

标签: php file-exists


【解决方案1】:

如果 PHP 启用了safe_mode,这将不起作用。尝试设置safe_mode_include_dir 添加异常,并使用语法\\computername\share\filename 引用位置。

【讨论】:

  • 安全模式功能在 php 5.4 中被禁用,我使用的是 php 5.5。我的情况需要做什么?
  • 嘿,恢复一个 9 岁的答案? PHP5 不再获得安全更新。 根本不使用它是唯一正确的答案。
【解决方案2】:

使用 URI 格式。 file://U:/abc/def/400abc.doc

【讨论】:

    【解决方案3】:

    更改服务器中的 FASTCGI 设置 [FASTCGI 设置] -> 打开 ...php-cgi.ex -> FastCGI 属性 -> 高级设置 -> 协议 -> 将 [NamedPipe] 更改为 [TCP]。 我和你有同样的错误,我试过了,成功了。祝你好运

    【讨论】:

      【解决方案4】:

      如果 file_exists 为 Windows 网络驱动器上的文件或文件夹返回 false,请尝试以下操作:

      1. 运行 regedit.exe
      2. 找到以下键 - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\RestrictNullSessAccess
      3. 将其值从 1 更改为 0。
      4. 重新启动计算机。
      5. 仔细检查您的网络驱动器是否已连接。
      6. 重试您的脚本 - 这次 file_exists 应该返回 true。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-06
        • 1970-01-01
        • 1970-01-01
        • 2015-04-01
        • 1970-01-01
        • 2017-09-09
        • 2018-12-26
        • 1970-01-01
        相关资源
        最近更新 更多