我们正在运行带有Windows Server 2008的Active Directory。
我们还有一个带有Apache2和LDAP的Linux Ubuntu Server 12.04。
是否可以通过PHP/Javascript访问Windows Server文件系统,并具有当前登录网站的用户的权限?
背景:我们在 Ubuntu 服务器上运行 Joomla 和 Mediawiki。用户撰写了一篇文章,并希望添加一些指向 Windows 服务器上的文件和文件夹 (!) 的链接。恕我直言,除了提示链接之外,最好的方法是选择带有 PHP/Javascript 目录列表的文件/文件夹。但用户应该只看到他有权访问的目录。
由于我需要文件/文件夹的完整路径,因此没有HTML"输入"字段的选项。
有什么想法吗?感谢您的帮助!
除非您可以使用 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() 函数参考