【问题标题】:PHP: Error Accessing Network DirectoryPHP:访问网络目录时出错
【发布时间】:2015-06-30 18:08:32
【问题描述】:

你好,

我正在尝试编写一个应用程序来读取映射到网络上的文件夹的内容,但我就是不知道我做错了什么。目标服务器没有 Apache、IIS 或类似的东西,但我认为这没关系,对吧?我可以使用 Windows 资源管理器毫无问题地在文件夹中导航。

无论如何,这是我的代码:

<?php
error_reporting(-1);

$isFolder1 = opendir("\\\\MVM-VIRTUAL04\\");
$isFolder2 = opendir("\\\\MVM-VIRTUAL05\\WORK\\");
var_dump($isFolder1); //bool(false)
var_dump($isFolder2); //resource(3) of type (stream) 
?>

它显示以下错误:

Warning: opendir(\\MVM-VIRTUAL04\,\\MVM-VIRTUAL04\) [function.opendir]: The specified path is not valid.. (code: 161) in xxx on line 4

Warning: opendir(\\MVM-VIRTUAL04\) [function.opendir]: failed to open dir: No error in C:\xampp\htdocs\Lab\fopen.php on line 4

bool(false) resource(3) of type (stream) 

据我所知,两台服务器的结构非常相似,但我真的不知道该怎么办了。我机器中的 XAAMP 和 Apache 在 Windows 7 64 位系统中以管理员身份运行。

我尝试使用system,(因为服务器受到限制,但我有完全访问权限)但它也不起作用。

system('net use X: "\\x-drive\public" password1 /user:username /persistent:no');
$isFolder(is_dir("x:/"));
echo($isFolder); //FALSE

【问题讨论】:

    标签: php network-programming opendir


    【解决方案1】:

    您无法在 PHP 中访问网络目录。如果你在 Linux 中工作,你可以通过简单地将网络驱动器安装到一个文件夹来解决这个问题,操作系统会认为它是“本地的”,但在 Windows 中,这是无法做到的。

    编辑:好的,这里的这篇文章与我刚才所说的相矛盾,所以我为虚假信息道歉:

    PHP is_dir() returns false on Windows network drive

    但是,如果它总是返回 false,则可能是该文件夹未正确共享。您确定您没有在文件夹名称中输入错误吗?您还必须以管理员身份运行 Apache 才能使其正常工作。

    【讨论】:

    • 天哪,这真的很糟糕。你对我有什么参考吗?我需要一些证据给我的老板看。
    • 我很肯定,我可以使用 Windows 资源管理器在文件夹上导航而不会出现问题。该文件夹并非对所有人开放,但我的 Windows 登录名具有完全权限,这可能是原因吗?
    • 据我所知,您需要以管理员身份运行 Apache 才能访问网络驱动器
    • 没用,错误仍然存​​在,即使 Apache 以管理员身份运行。
    猜你喜欢
    • 2016-08-17
    • 2011-07-30
    • 2015-05-21
    • 1970-01-01
    • 2012-09-20
    • 2011-08-30
    • 2013-06-29
    • 1970-01-01
    相关资源
    最近更新 更多