FM は、MIT ライセンスに基づいてリリースされたオープンソースのファイル マネージャーです。これは、elfinder または CKFinder の代替品です。
重要: このパッケージは非推奨です。
多数の新機能と改善点を備えたRichFileManagerパッケージを使用してください。
ファイルマネージャーは無料ライセンスの下にあります。ファイルマネージャーの開発をサポートしたい場合、またはビールを払ってメインのメンテナーに感謝したい場合は、次のボタンをクリックして寄付を行うことができます。
ファイルマネージャーについては、Wiki ページで詳しく説明されています。 API については、以下を参照してください。
前文
最近多くの変更が行われたため、現在は PHP コネクタと MVC コネクタのみが使用可能です。他のコネクタの最新バージョンを試すことはできますが、すべての機能が実装され、正しく動作するという保証はありません。
他のコネクタを使用するには、https://github.com/simogeo/Filemanager/archive/v0.8.zip から v0.8 バージョンをダウンロードしてください (PHP、ASHX、ASP、CFM、lasso、PL、および JSP コネクタが利用可能です)
JSP/Java コネクタの実装は、https://github.com/th-schwarz/C5Connector.Java で入手できます。
(1) Git を使用して、リポジトリから FileManager のコピーをチェックアウトします。
git clone http://github.com/simogeo/Filemanager.git
または、Github からアーカイブをダウンロードします: https://github.com/simogeo/Filemanager/archive/master.zip
FileManager は、Web サービスのルート ディレクトリ内のどこにでも配置できます。
(2)デフォルト設定ファイル (scripts ディレクトリにある「filemanager.config.default.json」) のコピーを作成し、ファイル名の末尾から「.default」を削除し、次の wiki に従ってオプションを編集します。ページ: https://github.com/simogeo/Filemanager/wiki/Filemanager-configuration-file 構成ケーススタディを参照することも役立つかもしれません。 https://github.com/simogeo/Filemanager/wiki/Specify-user-folder%2C-configuration-cases
(3a) FileManager を FCKEditor と統合している場合は、fckconfig.js ファイルを開き、画像やリンクなどに使用するファイル ブラウザを指定する行を見つけます。ファイルの下部を見てください。次のような行を変更する必要があります。
FCKConfig . ImageBrowser = false ;
FCKConfig . ImageBrowserURL = FCKConfig . BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=../../connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
...これに:
FCKConfig . ImageBrowser = true ;
FCKConfig . ImageBrowserURL = '[Path to Filemanager]/index.html' ;
(3b) FileManager を CKEditor 3.x 以降と統合している場合は、インスタンスを構成するときに次のように URL を設定するだけです。
CKEDITOR . replace ( 'instancename' , {
filebrowserBrowseUrl : '[Path to Filemanager]/index.html' ,
... other configuration options . . .
} ) ;
(ポップアップではなく)モーダル ダイアログ モードを使用したい場合は、専用の Wiki ページを参照してください。
(3c) FileManager を TinyMCE (>= 3.0) と統合する場合は、次のことを行う必要があります。
FileManagerのindex.htmlベースページを開くJavaScriptコールバック関数を作成します(例については、以下のURLを参照) tinyMCE.initコマンドに「file_browser_callback : 'name_of_callback_function'」のような行を追加します。 http://www.tinymce.comを参照してください。詳細については、/wiki.php/TinyMCE3x:How-to_implement_a_custom_file_browser を参照してください。
TinyMCE 4 サンプルを含む専用の Wiki ページも参照してください: https://github.com/simogeo/Filemanager/wiki/How-to-use-the-Filemanager-with-tinyMCE-3-or-4
(4)最後になりますが、セキュリティについても心配してください。
PHP コネクタの場合: /connectors/php/default.config.php
/connectors/php/user.config.php
にコピー/貼り付けて、独自の認証関数を定義します。これを行うには、専用の Wiki ページに例があります。
jQueryの依存関係と互換性
私たちは jQuery コア ライブラリを定期的に更新し続けるよう努めています。何らかの理由で、現時点で埋め込み jQuery バージョンを使用できない場合は、ファイルマネージャーはおそらく jQuery バージョン 1.6 以上で動作します。 jQuery バージョン 1.9 以降で使用するには、jQuery.merge() プラグインを使用する必要があります。
重要: Filemanager は特別な設定を行わなくても動作するように設計されていますが、設定を行わずに使用することは非常に危険です。デフォルトのファイルを元に専用のWikiページを参照し、独自の認証機能を設定してください。
この単純な API に従って、選択したサーバー側言語のコネクタを作成できます。適切な JSON オブジェクトを返すことで HTTP GET リクエストに応答できるスクリプトが次の場所にある必要があります。
[path to FileManager]/connectors/[language extension]/filemanager.[language extension]
FileManager には現在、次の場所に PHP、MVC、JSP、投げ縄、ASP、ASHX、PL、および CFM 用のコネクタが含まれています。
PHP: .../connectors/php/filemanager.php
ASP.NET MVC Framework .../connectors/mvc/FilemanagerController.cs
JSP: .../connectors/jsp/filemanager.jsp
lasso: .../connectors/lasso/filemanager.lasso
ASP: .../connectors/asp/filemanager.asp
ASHX: .../connectors/ashx/filemanager.asp
PL: .../connectors/pl/filemanager.pl
CFM: .../connectors/cfm/filemanager.cfm
リクエストに応答するスクリプトがこの場所に存在する限り、必要に応じてコード (外部ライブラリ、構成ファイルなど) を分割できます。
すべての応答には、エラー処理に固有の 2 つのキー (エラーとコード) が含まれている必要があります。スクリプトでエラーが発生した場合は、これらのキーに最も適切と思われる値を入力できます。エラーがない場合、Error は空または null のままであり、Code は空、null、またはゼロ (0) である必要があります。実際のエラーにはゼロを使用しないでください。次の例は、コネクタが構成に外部ファイルを使用している (推奨) が、そのファイルが見つからない場合の適切な応答になります。
{
"Error" : " Configuration file missing. " ,
"Code" : -1
}
スクリプトには、次のメソッド/関数のサポートが含まれている必要があります。 FileManager からの GET リクエストには、どのタイプの応答を返すかを示すパラメータ「mode」が含まれています。追加パラメータは、現在のディレクトリなど、リクエストを満たすために必要なその他の情報を提供します。
getinfo
メソッドは、単一のファイルに関する情報を返します。モード「getinfo」のリクエストには、検査するファイルを示す追加パラメータ「パス」が含まれます。ブール値パラメータ「getsize」は、ファイル (画像の場合) のサイズを返すかどうかを示します。
リクエストの例:
[path to connector]?mode=getinfo&path=/UserFiles/Image/logo.png&getsize=true
応答例:
{
"Path" : " /UserFiles/Image/logo.png " ,
"Filename" : " logo.png " ,
"File Type" : " png " ,
"Preview" : " /UserFiles/Image/logo.png " ,
"Protected" : 0 ,
"Properties" : {
"Date Created" : null ,
"Date Modified" : " 02/09/2007 14:01:06 " ,
"filemtime" : 1360237058 ,
"Height" : 14 ,
"Width" : 14 ,
"Size" : 384
},
"Error" : " " ,
"Code" : 0
}
キーは次のとおりです。
Path: The path to the file. Should match what was passed in the request.
Filename: The name of the file, i.e., the last part of the path.
File Type: The file extension, "dir" if a directory, or "txt" if missing/unknown.
Preview: Path to a preview image. If the file is an image that can be displayed in a web browser (i.e., gif, jpg, or png), you should return the path to the image. Otherwise, check to see if there is a matching file icon based on the file extension, constructing the path like so:
Directories: images/fileicons/_Open.png
Files: images/fileicons/[extension].png
Unknown: images/fileicons/default.png
Protected: Indicates if the file has some reading / writing restrictions. If not, set to 0. Else set to 1.
Properties: A nested JSON object containing specific properties of the file.
Date Created: The file's creation date, if available.
Date Modified: The file's modification date, if available.
Height: If an image, the height in pixels.
Width: If an image, the width in pixels.
Size: The file size in bytes.
Capabilities (optional): You can limit the operation buttons shown for a specific file. It is an array containing ['select','delete','rename','download'] (for all capabilities), or [] (for no capabilities). If not present, all capabilities are enabled.
Error: An error message, or empty/null if there was no error.
Code: An error code, or 0 if there was no error.
getfolder
メソッドは、指定されたディレクトリ (「パス」パラメーターで示される) の内容を表すファイルおよびフォルダー オブジェクトの配列を返します。 getinfo メソッドを呼び出して各ファイルのプロパティを取得する必要があります。ブール値パラメータ「getsizes」は、各項目に対して画像の寸法を返す必要があるかどうかを示します。フォルダーは常にファイルの前に返される必要があります。オプションで、「type」パラメータを指定して、返されるファイルを制限できます (コネクタに応じて)。メインのindex.html URLに「type」パラメータが指定されている場合、同じパラメータ値が再利用され、getfolderに渡されます。これは、たとえば、ファイル システム ツリー内のイメージ ファイルのみを表示するために使用できます。
リクエストの例:
[path to connector]?mode=getfolder&path=/UserFiles/Image/&getsizes=true&type=images
応答例:
{
"/UserFiles/Image/logo.png" : {
"Path" : " /UserFiles/Image/logo.png " ,
"Filename" : " logo.png " ,
"File Type" : " png " ,
"Preview" : " /UserFiles/Image/logo.png " ,
"Protected" : 0 ,
"Properties" : {
"Date Created" : null ,
"Date Modified" : " 02/09/2007 14:01:06 " ,
"filemtime" : 1360237058 ,
"Height" : 14 ,
"Width" : 14 ,
"Size" : 384
},
"Error" : " " ,
"Code" : 0
},
"/UserFiles/Image/icon.png" : {
"Path" : " /UserFiles/Image/icon.png " ,
"Filename" : " icon.png " ,
"File Type" : " png " ,
"Preview" : " /UserFiles/Image/icon.png " ,
"Properties" : {
"Date Created" : null ,
"Date Modified" : " 02/09/2007 14:01:06 " ,
"filemtime" : 1360237058 ,
"Height" : 14 ,
"Width" : 14 ,
"Size" : 384
},
"Error" : " " ,
"Code" : 0
},
"/UserFiles/folder/" :{
"Path" : " /UserFiles/folder/ " ,
"Filename" : " folder " ,
"File Type" : " dir " ,
"Preview" : " images / fileicons / _Open.png " ,
"Properties" : {
"Date Created" : null ,
"Date Modified" : " 02/09/2007 14:01:06 " ,
"filemtime" : 1360237058 ,
"Height" : null ,
"Width" : null ,
"Size" : null
},
"Error" : " " ,
"Code" : 0
}
}
配列内の各キーは個々の項目へのパスであり、値はその項目のファイル オブジェクトです。
rename
メソッドは、「old」パラメータで指定されたパスにある項目の名前を「new」パラメータで指定された名前に変更し、そのアクションの結果を示すオブジェクトを返します。
リクエストの例:
[path to connector]?mode=rename&old=/UserFiles/Image/logo.png&new=id.png
応答例:
{
"Error" : " No error " ,
"Code" : 0 ,
"Old Path" : " /a_folder_renamed/thisisareallylongincrediblylongfilenamefortesting.txt " ,
"Old Name" : " thisisareallylongincrediblylongfilenamefortesting.txt " ,
"New Path" : " /a_folder_renamed/a_renamed_file " ,
"New Name" : " a_renamed_file "
}
move
メソッドは、「古い」ファイルまたはディレクトリを指定された「新しい」ディレクトリに移動します。 fileRoot dir からの絶対パス、または「古い」項目からの相対パスを指定できます。 「root」値は、相対パスが fileRoot を超えないようにするために必須です。
リクエストの例: ファイルの移動
[path to connector]?mode=move&old=/uploads/images/original/Image/logo.png&new=/moved/&root=/uploads/images/
応答例:
{
"Error" : " No error " ,
"Code" : 0 ,
"Old Path" : " /uploads/images/original/Image/ " ,
"Old Name" : " logo.png " ,
"New Path" : " /uploads/images/moved/ " ,
"New Name" : " logo.png "
}
リクエスト例: ディレクトリを存在しないディレクトリに移動(作成されます)
[path to connector]?mode=move&old=/uploads/images/original/Image&new=../new_dir/&root=/uploads/images/
応答例:
{
"Error" : " No error " ,
"Code" : 0 ,
"Old Path" : " /uploads/images/original/ " ,
"Old Name" : " Image " ,
"New Path" : " /uploads/new_dir/ " ,
"New Name" : " Image "
}
delete
メソッドは、指定されたパスにある項目を削除します。
リクエストの例:
[path to connector]?mode=delete&path=/UserFiles/Image/logo.png
応答例:
{
"Error" : " No error " ,
"Code" : 0 ,
"Path" : " /UserFiles/Image/logo.png "
}
add
メソッドは、アップロードされたファイルを指定されたパスに追加します。他のメソッドとは異なり、このメソッドは HTML でラップされた JSON 応答を返す必要があるため、応答の MIME タイプは text/plain ではなく text/html になります。ファイル マネージャーのアップロード フォームは、アップロードされたファイルとともに現在のパスを POST パラメーターとして渡します。応答には、ファイルの保存に使用されたパスと名前が含まれます。アップロードされたファイルの名前は、URL のパス コンポーネントとして安全に使用できる必要があるため、少なくとも URL エンコードされている必要があります。
応答例:
{
"Path" : " /UserFiles/Image/ " ,
"Name" : " new_logo.png " ,
"Error" : " No error " ,
"Code" : 0
}
replace
メソッドを使用すると、新しいファイル名が何であれ、ユーザーは特定のファイルを置き換えることができます。少なくとも、新しいファイルには元のファイルと同じ拡張子が付いている必要があります。古いファイルは自動的に上書きされます。他のメソッドとは異なり、このメソッドは HTML でラップされた JSON 応答を返す必要があるため、応答の MIME タイプは text/plain ではなく text/html になります。ファイル マネージャーの動的アップロード フォームは、アップロードされたファイルとともに現在のファイル パスを POST パラメーターとして渡します。応答には、ファイルの保存に使用されたパスと名前が含まれます。
応答例:
{
"Path" : " /UserFiles/Image/ " ,
"Name" : " new_logo.png " ,
"Error" : " No error " ,
"Code" : 0
}
editfile
メソッドは、(パラメーターとして渡された) 指定されたファイルの内容を返します。これにより、ユーザーはオンラインでファイルを編集できるようになります (拡張子は構成ファイルで指定されます)。 GETリクエストとして処理されます。
リクエストの例:
[path to connector]?mode=editfile&path=/UserFiles/MyFolder/myfile.txt
応答例:
{
"Error" : " No error " ,
"Code" : 0 ,
"Path" : " /UserFiles/MyFolder/myfile.txt " ,
"Content" : "Content" : " Lorem ipsum dolor sit amet, consectetur adipiscing elit. rn P hasellus eu erat lorem. rnrn B ye! "
}
save
メソッドは、現在のファイルの内容を上書きします。ファイル マネージャーの編集フォームは、モード ( savefile
として)、現在のファイルのパス、およびコンテンツを POST パラメーターとして渡します。
応答例:
{
"Error" : " No error " ,
"Code" : 0 ,
"Path" : " /UserFiles/MyFolder/myfile.txt "
}
preview
メソッドは、要求された画像を表示用に提供します。画像パスはpath
パラメータを通じて渡されます。 thumbnail=true
パラメータが渡された場合、メソッドは画像のサムネイルを返します。キャッシュの問題を防ぐために、UNIX 時間などの追加パラメータを URL に追加できます。
リクエストの例:
[path to connector]?mode=preview&path=/UserFiles/new%20logo.png&thumbnail=true
addfolder
メソッドは、サーバー上の指定されたパス内に新しいディレクトリを作成します。
リクエストの例:
[path to connector]?mode=addfolder&path=/UserFiles/&name=new%20logo.png
応答例:
{
"Parent" : " /UserFiles/ " ,
"Name" : " new_logo.png " ,
"Error" : " No error " ,
"Code" : 0
}
download
メソッドは、要求されたファイルをユーザーに提供します。現在、ファイルをブラウザに表示するのではなく強制的にダウンロードするために、「application/x-download」という MIME タイプを使用しています。将来的には、PDF やさまざまなムービー形式 (Flash、Quicktime など) など、ブラウザ内ビューアを備えていることが多い特定のファイル タイプに対して例外を設ける可能性があります。
リクエストの例:
[path to connector]?mode=download&path=/UserFiles/new%20logo.png
著作権 (c) 2011-2013 ジェイソン・ハック、サイモン・ジョージット http://opensource.org/licenses/MIT
本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそのことを許可すること。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。いかなる場合においても、作者または著作権所有者は、契約行為、不法行為、またはその他の行為であるかどうかにかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる、いかなる請求、損害、またはその他の責任に対しても責任を負わないものとします。ソフトウェア。