1

Windows Server 2008 で Active Directory を実行してい
ます。Apache2 と LDAP で Linux Ubuntu Server 12.04 も使用しています。

Web サイトに現在ログインしているユーザーの権限で、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 に答える