Web上で、ファイルのブラウジングができるファイルマネージャ的なシステムが欲しいと思っていて、自作のやつを使っていたんだけど、自作のはまったくできがよろしくないので、ネットを漁った所、elFinderというのを見つけた。
これが見た目がいいし、設置も簡単だった。
- MySQLが必要かと思ったらなくても動くみたいだった
- git cloneではなく、tar.gzファイルをDL・解凍して置くだけでアクセスできた
設置でちょっとだけ戸惑ったのでメモ。
- githubのリポジトリをcloneしただけでは動かなかった
- githubのリポジトリのファイル群は足りないのがあるみたい
- elFinder.min.jsがなかったりelFinder.min.cssがなかったり、肝心のものが足りない
- git clone はやめて tar.gzをDL
- https://github.com/downloads/Studio-42/elFinder/elfinder-2.0-rc1.tar.gz;
- 何も設定しなくても、elFinder/elfinder.html にアクセスすれば動いているのを確認できた
- 何も設定を変更しない状態だと elFinder/files にある情報を表示してくれる
- しかし、そこには何もないので、 connector.php の内容を修正する
- pathが ../files/ になっているので、例えば ../ に修正し、
- URL の方の /../files/ を /../ に修正すれば、elFinder の中身が見られる
- 起点は connector.php が置かれているphp ディレクトリにあるよう
- 相対パスの扱いになれていなければ、ちょっとずつそこをいじっていって、目的の場所までいけばいい
いまは、動的に閲覧する場所を変えられるようカスタマイズ中。
追記:javasriptのほうで、GETでパラメータを渡してあげて、
$().ready(function() {
var elf = $('#elfinder').elfinder({
url : 'php/connector.php?dir=hogehoge/' // connector URL (REQUIRED)
// lang: 'ru', // language (OPTIONAL)
}).elfinder('instance');
});
connector.phpのほうで、それを受け取ってやれば、動的に表示するディレクトリを変えられる
$dir = $_GET['dir'];
$opts = array(
// 'debug' => true,
'roots' => array(
array(
'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED)
'path' => '../../../'. $dir, // path to files (REQUIRED)
'URL' => dirname($_SERVER['PHP_SELF']) . '/../../../'. $dir, // URL to files (REQUIRED)
'accessControl' => 'access' // disable and hide dot starting files (OPTIONAL)
)
)
);