我已将网络驱动器映射到家庭网络中的计算机。现在我试图通过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命令?
请注意,映射的驱动器确实存在,因为我可以看到它,我可以访问它。它似乎也不是一个权限问题,因为我假设它会抱怨这个它可以访问该驱动器......对吗?
感谢大家的帮助
答案 0 :(得分:5)
User Contributed Notes to opendir()有这个:
我试图使用此opendir函数访问网络驱动器。我看了很多帖子说几乎不可能访问网络驱动器,最后,我找到了答案;在同一台计算机或另一台计算机上使用PHP访问网络驱动器需要遵循两个步骤。
在这种情况下,用户权限似乎确实是问题,这可能与您的权利不同,具体取决于运行PHP / Web服务器的用户。
答案 1 :(得分:3)
简单,使用:"\\\\server\\dir\\subfolder"
作为路径。确保您可以访问“服务器”。
适合我。
$arquivo = "\\\\server\\dir\\subfolder\\file.txt";
echo is_file($arquivo); //print 1.
答案 2 :(得分:2)
转到开始 - >打开服务MMC。运行(或使用搜索框,如果使用Windows 7)并键入Services.msc并按Enter键。 找到Apache服务。从未使用过WAMP,我不知道它的名字是什么。希望它从“Apache”这个词开始,因此不应该太难找到。 右键单击该服务,然后选择“属性”。 切换到“登录”选项卡。 选择“此帐户:”旁边的单选按钮,然后输入要在其下运行Apache的用户帐户的凭据。如果是网络/域帐户,请使用“DOMAIN \ user”语法(或使用“浏览”按钮搜索帐户)。 选择确定并重新启动Apache服务。 通过在任务管理器中查找“httpd.exe”进程并检查进程正在运行的用户名来验证您的更改是否有效。
参考http://board.phpbuilder.com/board/showthread.php?t=10371870&page=2