根据麻省理工学院的许可发布的开源文件管理器。PHP连接器的最新版本。此程序包已弃用。现在,请使用RichFileManager,网址为:https://github.com/servocoder/Ri
Posted
tags:
中文标题:根据麻省理工学院的许可发布的开源文件管理器。PHP连接器的最新版本。此程序包已弃用。现在,请使用RichFileManager,网址为:https://github.com/servocoder/Ri 原文标题:An open-source file manager released under MIT license. Up-to-date for PHP connector. This package is DEPRECATED. Now, please use RichFileManager available at : https://github.com/servocoder/RichFilemanager. 项目评级:Star:934 Fork:358 下载地址:https://github.com/simogeo/Filemanager 详情介绍文件管理器
FM是一个在麻省理工学院许可下发布的开源文件管理器。它是elfinder或CKFinder的替代品。
重要信息:此程序包已弃用。
现在,请使用带有许多新功能和改进的RichFileManager软件包。
支持
Filemanager获得免费许可。如果你想支持filemanager的开发,或者只是通过支付啤酒来感谢它的主要维护人员,你可以点击以下按钮捐款:
主要功能
截图
文档
文件管理器在wiki页面上有很高的文档记录。API,见下文。
安装和设置
序言
由于最近进行了许多更改,现在只有PHP和MVC连接器可用。您可以尝试其他连接器的最新版本,但无需保修,它们可以实现所有功能并正常工作。
要使用其他连接器,请从下载v0.8版本https://github.com/simogeo/Filemanager/archive/v0.8.zip
(提供PHP、ASHX、ASP、CFM、套索、PL和JSP连接器)
JSP/Java连接器实现可在以下位置获得:https://github.com/th-schwarz/C5Connector.Java
(1) 使用Git从存储库中签出FileManager的副本:
git克隆http://github.com/simogeo/Filemanager.git
或者从Github下载档案:https://github.com/simogeo/Filemanager/archive/master.zip
您可以将FileManager放置在web服务根目录中的任何位置。
(2) 复制默认配置文件(位于脚本目录中的“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-配置案例
(3a)如果您正在将FileManager与FCKEditor集成,请打开fckconfig.js文件,找到指定用于图像、链接等的文件浏览器的行。查看文件底部。您需要更改以下行:
…对此:
(3b)如果您正在将FileManager与CKEditor 3.x或更高版本集成,只需在配置实例时设置URL,如下所示:
如果您想使用模态对话框模式(而不是弹出式),请参阅专用的wiki页面。
(3c)如果您正在将FileManager与TinyMCE集成(>;=3.0),您应该:
创建一个Javascript回调函数,该函数将打开FileManager index.html基页(有关示例,请参阅下面的URL)
在tinyMC.init命令中添加一行,如:“file_browser_callback:'name_of_callback_function'”
看见http://www.tinymce.com/wiki.php/TinyMCE3x:How-to_implement_a_custom_file_browser了解更多详细信息。
另请参阅专用wiki页面,其中包含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
,以定义您自己的身份验证功能。
为此,您将在专用的wiki页面上找到一个示例。
jQuery依赖性和兼容性
我们尝试定期更新jQuery核心库。
如果由于任何原因,您现在不能使用嵌入式jQuery版本,那么Filemanager可能会使用jQuery版本>;=1.6.
您必须使用jQuery.migrate()插件才能将其与1.9+版本的jQuery一起使用。
设置&;安全
重要提示:文件管理器被设计为在没有任何特殊配置的情况下工作,但在没有任何配置的情况下来使用它是非常不安全的。
请根据默认文件并参考专用的wiki页面设置您自己的身份验证功能。
API
连接器位置
您可以按照这个简单的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
只要这个位置有一个脚本来响应请求,您就可以按照自己的意愿拆分代码(外部库、配置文件等)。
错误处理
每个响应都应该包括两个特定于错误处理的键:error和Code。如果脚本中出现错误,您可以使用任何va来填充这些密钥
你觉得路厄最合适。如果没有错误,error应保持为空或null,Code应为空、null或零(0)。不要对任何实际错误使用零。如果连接器使用外部文件进行配置(推荐),但找不到该文件,则以下示例将是适当的响应:
方法
您的脚本应该包括对以下方法/函数的支持。来自FileManager的GET请求包括一个参数“mode”,它将指示返回哪种类型的响应。附加参数将提供满足请求所需的其他信息,例如当前目录。
获取信息
getinfo
方法返回关于单个文件的信息。模式为“getinfo”的请求将包括一个额外的参数“path”,指示要检查的文件。布尔参数“getsize”指示是否应该返回文件的维度(如果是图像)。
请求示例:
[path to connector]?mode=getinfo&path=/UserFiles/Image/logo.png&getsize=true
示例响应:
按键如下:
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方法来检索每个文件的属性。布尔参数“getsize”指示是否应该为每个项目返回图像维度。文件夹应始终先于文件返回。
可以选择指定一个“类型”参数来限制返回的文件(取决于连接器)。如果为主要的index.html URL提供了一个“type”参数,则会重用相同的参数值并将其传递给getfolder。例如,这可以用于仅显示文件系统树中的图像文件。
请求示例:
[path to connector]?mode=getfolder&path=/UserFiles/Image/&getsizes=true&type=images
示例响应:
数组中的每个键都是单个项的路径,值是该项的文件对象。
重命名
rename
方法将“旧”参数中给定的路径上的项重命名为“新”参数中给出的名称,并返回一个指示该操作结果的对象。
请求示例:
[path to connector]?mode=rename&old=/UserFiles/Image/logo.png&new=id.png
示例响应:
移动
move
方法将“旧”文件或目录移动到指定的“新”目录。可以从fileRoot目录指定绝对路径,也可以从“旧”项指定相对路径。“root”值是必需的,以确保相对路径不会超过fileRoot。
请求示例:移动文件
[path to connector]?mode=move&old=/uploads/images/original/Image/logo.png&new=/moved/&root=/uploads/images/
示例响应:
示例请求:将目录移动到不存在的目录(将被创建)
[path to connector]?mode=move&old=/uploads/images/original/Image&new=../new_dir/&root=/uploads/images/
示例响应:
删去
delete
方法删除指定路径上的项目。
请求示例:
[path to connector]?mode=delete&path=/UserFiles/Image/logo.png
示例响应:
添加
add
方法将上传的文件添加到指定的路径。与其他方法不同,此方法必须返回用HTML<textarea>
包装的JSON响应,因此响应的MIME类型为text/HTML,而不是text/plain。文件管理器中的上传表单通过当前路径
作为POST参数以及上传的文件。响应包括用于存储文件的路径和名称。上传文件的名称应该可以安全地用作URL中的路径组件,因此URL至少要编码。
示例响应:
代替
replace
方法允许用户替换特定的文件,无论新文件名是什么——至少,新文件的扩展名应该与原始文件的相同。旧文件将被自动覆盖。与其他方法不同,此方法必须返回HTML<textarea>
包装的JSON响应,因此响应的MIME类型为text/HTML,而不是text/plain。文件管理器中的动态上传表单将当前文件路径作为POST参数与上传的文件一起传递。响应包括用于存储文件的路径和名称。
示例响应:
编辑文件
editfile
方法返回给定文件的内容(作为参数传递)。它使用户能够在线编辑文件(扩展名在配置文件中指定)。作为GET请求处理。
请求示例:
[path to connector]?mode=editfile&path=/UserFiles/MyFolder/myfile.txt
示例响应:
保存文件
save
方法将覆盖当前文件的内容。文件管理器中的编辑表单将模式(savefile
)、当前文件的路径和内容作为POST参数。
示例响应:
预览
preview
方法用于显示所请求的图像。图像路径通过path
参数。如果参数thumbnail=true
通过,该方法将返回一个图像缩略图。可以在URL中添加一个额外的参数,如UNIX时间,以防止缓存问题。
请求示例:
[path to connector]?mode=preview&path=/UserFiles/new%20logo.png&thumbnail=true
添加文件夹
addfolder
方法在给定路径内的服务器上创建一个新目录。
请求示例:
[path to connector]?mode=addfolder&path=/UserFiles/&name=new%20logo.png
示例响应:
下载
download
方法将请求的文件提供给用户。我们目前使用MIME类型的“application/x-download”来强制下载文件,而不是在浏览器中显示。未来,我们可能会对浏览器中经常存在的特定文件类型进行例外处理,如PDF和各种电影格式(Flash、Quicktime等)。
请求示例:
[path to connector]?mode=download&path=/UserFiles/new%20logo.png
MIT许可证
版权所有(c)2011-2013 Jason Huck,Simon Georget
http://opensource.org/licenses/MIT
特此免费授予获得本软件副本和相关文档文件(“软件”)的任何人无限制地使用本软件,包括但不限于使用、复制、修改、合并、发布、分发、分许可和/或出售本软件副本的权利,并允许向其提供本软件的人员这样做,符合以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。
软件是“按原样”提供的,没有任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不侵权的保证。在任何情况下,作者或版权持有人均不承担因软件或软件的使用或其他交易而产生、产生或与之相关的任何索赔、损害赔偿或其他责任,无论是在合同诉讼、侵权诉讼还是其他诉讼中。