FM은 MIT 라이센스에 따라 출시된 오픈 소스 파일 관리자입니다. elfinder 또는 CKFinder의 대안입니다.
중요 : 이 패키지는 더 이상 사용되지 않습니다 .
이제 다양한 새로운 기능과 개선 사항이 포함된 RichFileManager 패키지를 사용해 보세요.
파일 관리자는 무료 라이센스를 받고 있습니다. 파일 관리자 개발을 지원하고 싶거나 맥주를 지불하여 주요 관리자에게 감사를 표하고 싶다면 다음 버튼을 클릭하여 기부할 수 있습니다.
Filemanager는 위키 페이지에 자세히 설명되어 있습니다. 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 복사본을 체크아웃합니다.
자식 클론 http://github.com/simogeo/Filemanager.git
또는 Github에서 아카이브를 다운로드하세요: https://github.com/simogeo/Filemanager/archive/master.zip
FileManager는 웹 제공 루트 디렉토리 내 어느 곳에나 배치할 수 있습니다.
(2) 기본 구성 파일(scripts 디렉터리에 있는 "filemanager.config.default.json")의 복사본을 만들고 파일 이름 끝에서 '.default'를 제거한 후 다음 위키에 따라 옵션을 편집합니다. 페이지 : 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 . . .
} ) ;
(팝업 대신) 모달 대화 상자 모드를 사용하려면 전용 위키 페이지를 참조하세요.
(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 샘플이 포함된 전용 위키 페이지도 참조하세요. 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
에 복사/붙여넣어 고유한 인증 기능을 정의합니다. 그렇게 하려면 전용 위키 페이지에서 예제를 찾아보세요.
jQuery 종속성 및 호환성
우리는 jQuery 코어 라이브러리를 정기적으로 계속 업데이트하려고 노력합니다. 어떤 이유로든 지금 당장 내장된 jQuery 버전을 사용할 수 없다면 Filemanager는 아마도 jQuery 버전 >= 1.6에서 작동할 것입니다. jQuery 버전 1.9 이상에서 사용하려면 jQuery. migration() 플러그인을 사용해야 합니다.
중요 : Filemanager는 특별한 구성 없이 작동하도록 설계되었지만 구성 없이 사용하는 것은 매우 안전하지 않습니다 . 기본 파일을 기반으로 전용 위키 페이지를 참조하여 자체 인증 기능을 설정하세요.
이 간단한 API에 따라 선택한 서버 측 언어에 대한 커넥터를 만들 수 있습니다. 적절한 JSON 객체를 반환하여 HTTP GET 요청에 응답할 수 있는 스크립트가 다음 위치에 있어야 합니다.
[path to FileManager]/connectors/[language extension]/filemanager.[language extension]
FileManager에는 현재 다음 위치에 PHP, MVC, JSP, lasso, 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
요청에 응답하기 위해 이 위치에 스크립트가 존재하는 한 적절하다고 판단되는 대로 코드(외부 라이브러리, 구성 파일 등)를 분할할 수 있습니다.
모든 응답에는 오류 처리와 관련된 두 가지 키인 오류 및 코드가 포함되어야 합니다. 스크립트에 오류가 발생하면 가장 적절하다고 생각되는 값으로 이러한 키를 채울 수 있습니다. 오류가 없으면 오류는 비어 있거나 null이어야 하며 코드는 비어 있거나 null 또는 영(0)이어야 합니다. 실제 오류에는 0을 사용하지 마십시오. 다음 예는 커넥터가 구성을 위해 외부 파일을 사용하지만(권장) 해당 파일을 찾을 수 없는 경우 적절한 응답입니다.
{
"Error" : " Configuration file missing. " ,
"Code" : -1
}
스크립트에는 다음 메서드/함수에 대한 지원이 포함되어야 합니다. FileManager의 GET 요청에는 반환할 응답 유형을 나타내는 매개변수 "mode"가 포함되어 있습니다. 추가 매개변수는 현재 디렉터리와 같이 요청을 이행하는 데 필요한 기타 정보를 제공합니다.
getinfo
메소드는 단일 파일에 대한 정보를 반환합니다. "getinfo" 모드의 요청에는 검사할 파일을 나타내는 추가 매개변수 "path"가 포함됩니다. 부울 매개변수 "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
메소드는 지정된 디렉토리("path" 매개변수로 표시됨)의 내용을 나타내는 파일 및 폴더 객체의 배열을 반환합니다. 각 파일의 속성을 검색하려면 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 디렉토리의 절대 경로 또는 "이전" 항목의 상대 경로를 지정할 수 있습니다. 상대 경로가 fileRoot를 초과하지 않도록 하려면 "root" 값이 필수입니다.
요청 예시: 파일 이동
[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 Jason Huck, Simon Georget http://opensource.org/licenses/MIT
본 소프트웨어 및 관련 문서 파일("소프트웨어")의 사본을 취득한 모든 사람에게 사용, 복사, 수정, 병합에 대한 권리를 포함하되 이에 국한되지 않고 제한 없이 소프트웨어를 취급할 수 있는 권한이 무료로 부여됩니다. , 다음 조건에 따라 소프트웨어 사본을 게시, 배포, 재라이센스 부여 및/또는 판매하고, 소프트웨어를 제공받은 사람이 그렇게 하도록 허용합니다.
위의 저작권 고지와 본 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함됩니다.
소프트웨어는 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. 어떠한 경우에도 작성자나 저작권 보유자는 계약, 불법 행위 또는 기타 행위로 인해 소프트웨어나 사용 또는 기타 거래와 관련하여 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다. 소프트웨어.