3

我已将网络驱动器映射到家庭网络中的计算机。现在我正在尝试通过 PHP 访问它 - 我做了这个快速测试:

echo opendir('Z:\\');

这给了我:

Warning: opendir(Z:\) [function.opendir]: failed to open dir: No error in C:\wamp\www\webs\tester-function.php  on line 3

我在这里做错了什么?

我不希望我的用户输入 UNC 路径,所以有没有办法为他们获取 UNC 路径,也许当我尝试访问它时会起作用?这在 Microsoft 语言中是可能的,但我不确定如何让 PHP 做到这一点 - 也许使用 cmd.exe 命令?

请注意,映射的驱动器确实存在,我可以看到它并且我可以访问它。它似乎也不是权限问题,因为我假设它会抱怨这个如果它可以访问该驱动器......对吗?

谢谢大家的帮助

4

3 回答 3

5

对 opendir()的用户贡献注释有:

我试图使用这个 opendir 函数访问网络驱动器。我看了很多帖子说几乎不可能访问网络驱动器,最后我找到了答案;在同一台机器或另一台机器上使用 PHP 访问网络驱动器需要遵循 2 个步骤。

在这种情况下,用户权限似乎确实是问题所在,这可能与您的权限不同,具体取决于运行 PHP/Web 服务器的用户。

于 2010-04-07T13:48:56.203 回答
4

通过转到开始 -> 运行(或使用搜索框,如果使用 Windows 7)并键入 Services.msc 并按 Enter,打开服务 MMC。找到 Apache 服务。从未使用过 WAMP,我不知道它被命名为什么。希望它以“Apache”这个词开头,因此不应该太难找到。右键单击服务并选择属性。切换到登录选项卡。选择“此帐户:”旁边的单选按钮,然后输入您要在其下运行 Apache 的用户帐户的凭据。如果是网络/域帐户,请使用“DOMAIN\user”语法(或使用“浏览”按钮搜索该帐户)。选择确定并重新启动 Apache 服务。通过查找“httpd.exe”来验证您的更改是否有效

参考http://board.phpbuilder.com/board/showthread.php?t=10371870&page=2

于 2012-06-25T09:38:16.230 回答
3

简单,使用: "\\\\server\\dir\\subfolder"作为路径。确保您可以访问“服务器”。

为我工作。
$arquivo = "\\\\server\\dir\\subfolder\\file.txt"; echo is_file($arquivo); //print 1.

于 2013-09-10T18:43:51.713 回答