【问题标题】:is_dir, scandir on local networkis_dir,本地网络上的scandir
【发布时间】:2014-04-29 18:22:36
【问题描述】:

在我的计算机上,我在 Windows 7 x64 上运行 Wamp。文件以 DocumentRoot 为基础,我有一个别名指向我的 f: 驱动器上的另一个目录。

在我的网络上,我有其他计算机。在任何资源管理器中输入地址 http://192.168.x.x/htmlbase/ 时,它会正确显示目录 htmlbase 的内容,正如我的别名所指定的那样。

在我的网络上,我还有一台运行 Apache 的 Synology。在那个 Synology 上,我有一个 php 脚本,它实际上应该扫描我计算机上 htmlbase 的内容,所以在 192.168.x.x/htmlbase/ 上并打印目录和文件列表。

问题是一切都失败了,它不会读取它:

我尝试过的来源:

'//192.168.x.x/htmlbase/'
'http://192.168.x.x/htmlbase/'
'file://192.168.x.x/htmlbase/'
"\\\\192.168.x.x\\htmlbase\\"

一个简单的

if (is_dir($source))
    echo 'yes';
else
    echo 'no';

将始终回显“不”。

scandir 没有告诉我

"Warning: scandir(//192.168.x.x/htmlbase/): failed to open dir: No such file or directory in /volume1/web/htmlreader/index.php on line 68 Warning: scandir(): (errno 2): No such file or directory in /volume1/web/htmlreader/index.php on line 68"

我已阅读其他主题,告诉我 Synology 上的 Apache 服务器没有扫描我计算机上的目录所需的权限,但仅此而已。

【问题讨论】:

  • scandir() 不支持http AFAIK,你有网络驱动器吗?否则你为什么不使用FTP?
  • 我为什么要使用 FTP?我需要列出该目录中的目录和文件,并使其可单击以浏览它们。如果它是一个文件,我会解析它并根据我的解析呈现它...

标签: php


【解决方案1】:

您需要运行类似 Samba 的服务并配置为能够浏览目录。

https://www.samba.org/

Synology 是否有 Samba,如果有,该服务是否正在运行?

【讨论】:

  • Synology 已启用 SMB,即使是 SMB2 和 larget MTU 也是如此。该服务实际上正在其上运行。但我正在尝试从运行在 Synology 上的脚本访问我的计算机,而不是逆向
  • 好的,您的两台计算机需要在同一个工作组中。你能检查一下他们是否在同一个工作组中吗?
  • 两台计算机的权限/防火墙是否都设置为允许文件共享?
  • php 需要什么/在哪里访问 apache 目录的权限?顺便说一句,刚刚尝试了从我的计算机上运行的脚本到 synology 的 is_dir,也不起作用...也不是 scandir
  • 不是 PHP 权限,而是计算机权限,Samba 用于在两台计算机上通信的端口是否开放,是否需要配置任何特殊权限才能允许文件共享。
猜你喜欢
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多