ブラウザ上でファイルのアップ・ダウンロードが可能なTiny File Managerの利用方法
2024/04/07
ブラウザ上でファイルのアップ・ダウンロードが可能なファイルマネージャーを設置したかった。無料で良いのが無いか探したところ「Tiny File Manager」というプログラムがPHPファイル1枚で動作し、見た目的にも使えそう。以下に導入方法と各種設定方法をメモ。
目次
Tiny File Manager
公式サイト
https://tinyfilemanager.github.io/
ドキュメント
https://github.com/prasathmani/tinyfilemanager/wiki
デモページ
https://tinyfilemanager.github.io/demo/
導入方法
ファイルのアップロード
公式ページよりtinyfilemanager.phpをダウンロードして適当なディレクトリにアップロードする。
ログイン
ブラウザから確認すると以下のようなログインページが表示される筈。
デフォルトで以下がアカウント情報になる。
- Username -> admin
- Password -> admin@123
ログインすると以下のようにファイル一覧が表示される筈。表示されない場合はパーミッション設定を見直すこと。
設定方法
ログインの有無
24行目付近の以下をfalseにすることでログイン不要になる。
$use_auth = true;
アカウント設定
29行目付近の以下がアカウント設定になる。
$auth_users = array( 'admin' => '$2y$10$/K.hjNr84lLNDt8fTXjoI.DBp6PpeyoJ.mGwrrLuCZfAwfSAGqhOW', //admin@123 'user' => '$2y$10$Fg6Dz8oH9fPoZ2jJan5tZuv6Z4Kp7avtQ9bDfrdRntXtPeiMAZyGO' //12345 );
keyがUsername、valueがPasswordに相当する。尚、パスワードの方はこちらのページでpassword_hash化した値を入力する。
ディレクトリ指定
指定したユーザーは指定したディレクトリ以下のみ閲覧可能にする設定。
45行目付近の以下を書き換える。ユーザ名に関しては上記のアカウント設定で作成したものを指定すること。
#変更前 $directories_users = array(); #変更後 $directories_users = array( 'user' => '/ドキュメントルート/指定ディレクトリ', 'guest' => '/ドキュメントルート/指定ディレクトリ' );
日時設定
59行目付近の以下を書き換える。
#変更前 $default_timezone = 'Etc/UTC'; #変更後 $default_timezone = 'Asia/Tokyo';
また、78行目付近の以下を書き換える。
#変更前 $datetime_format = 'm/d/Y g:i A'; #変更後 $datetime_format = 'Y-m-d H:i:s';
ここまで設定すればある程度使える筈(PHP8系で動作確認済み)。
その他
「Direct link」のURLが変
$directories_usersでディレクトリ設定を行った場合、「Direct link」のリンク先URLが変になる筈。
無理やりだけど以下部分を書き換える。
#ソースコードの上の方で定義 define('CUSTOM_ROOT_URL', 'https://test.com/tinyfilemanager'); #2116行目 変更前 <a title="<?php echo lng('DirectLink')?>" href="<?php echo fm_enc(FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f . '/') ?>" target="_blank"><i class="fa fa-link" aria-hidden="true"></i></a> #変更後 <a title="<?php echo lng('DirectLink')?>" href="<?php echo CUSTOM_ROOT_URL . fm_enc($f) ?>" target="_blank"><i class="fa fa-link" aria-hidden="true"></i></a> #2187行目 変更前 <a title="<?php echo lng('DirectLink') ?>" href="<?php echo fm_enc(FM_ROOT_URL . (FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $f) ?>" target="_blank"><i class="fa fa-link"></i></a> #変更後 <a title="<?php echo lng('DirectLink') ?>" href="<?php echo CUSTOM_ROOT_URL . fm_enc($f) ?>" target="_blank"><i class="fa fa-link"></i></a>
これでディレクトリ設定を行っても「Direct link」でファイルが閲覧できるようになる筈。
所感
サイトの管理画面(ダッシュボード)にアップローダ的なものを実装する際、今までは素のPHPで組んでいたけど、このプログラムを組み込むというのもありかも。
関連記事
-
-
PHPでフォーム送信の際に禁止ワードのチェック及び制限をかける方法
掲示板等のformを送信する際に特定の禁止ワードが含まれていないかチェックするプ ...
-
-
FLASHから受信した画像をPHPで保存し、サムネイルも作る
■参考サイト ・FLASH http://www.ilovex.co.jp/bl ...
-
-
PHPにてmicrotimeで秒数を測定した際「xxxxxE-5」のような値になる場合の対応方法
PHPで過去記事を参考の上、あるプログラムの処理にかかった時間を測定しようとした ...
-
-
PHPにてacebook / twitter / Googleアカウントでソーシャル(SNS)ログインする方法
PHPにて制作したシステムで「facebook / twitter / Goog ...
-
-
PHPで外部のAPIにリクエストする際に並列処理(非同期実行)する方法
あるシステムからPHPで外部のAPIにリクエストしたかった。ただ、複数回リクエス ...