1

我们正在运行一个带有 Windows Server 2008 的 Active Directory。
我们还有一个带有 Apache2 和 LDAP 的 Linux Ubuntu Server 12.04。

是否可以通过 PHP/Javascript 以当前登录网站的用户的权限访问 Windows Server 文件系统?

背景:我们在 Ubuntu 服务器上运行 Joomla 和 Mediawiki。一位用户写了一篇文章,并希望在 Windows Server 上添加一些指向文件和文件夹 (!) 的链接。恕我直言,除了提示链接之外,最好的方法是选择带有 PHP/Javascript 目录列表的文件/文件夹。但是用户应该只看到他有权访问的目录。
由于我需要文件/文件夹的完整路径,因此无法选择 HTML-“输入”字段。

有任何想法吗?谢谢你的帮助!

4

1 回答 1

0

除非您可以使用 PHP 对 Active Directory 服务器进行身份验证(这可能意味着使用明文形式的用户密码),否则您将需要使用 PHP 来列出文件。

PHP有一个scandir()功能。由于 PHP 需要被授予对 Active Directory 服务器的完全读取权限,如果您使用 PHP 来确定用户可以看到哪些文件,那么您可以简单地显示他们需要的文件。

您可以使用此函数获取文件结构:

function listdir($folder) {
    if (!is_dir($folder)) {
        return array(); //empty if not a folder
    }
    $return = scandir($folder);
    $subfolders = array();
    array_shift($return); //first two values are always .. & .
    array_shift($return);
    foreach ($return as $key => $value) {
        if (is_dir($value)) {
            unset($return[$key]);
            $subfolders[$value] = listdir($value); //recursively analyse the subdirectory
        }
    }
    return array_merge(array_values($return), $subfolders);
}

请注意,我没有对此进行测试,所以如果有问题,请告诉我。

scandir() 函数参考

于 2012-06-12T13:07:45.973 回答