根据麻省理工学院的许可发布的开源文件管理器。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

特此免费授予获得本软件副本和相关文档文件(“软件”)的任何人无限制地使用本软件,包括但不限于使用、复制、修改、合并、发布、分发、分许可和/或出售本软件副本的权利,并允许向其提供本软件的人员这样做,符合以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。

软件是“按原样”提供的,没有任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不侵权的保证。在任何情况下,作者或版权持有人均不承担因软件或软件的使用或其他交易而产生、产生或与之相关的任何索赔、损害赔偿或其他责任,无论是在合同诉讼、侵权诉讼还是其他诉讼中。

package.json license 开源许可证说明

package.json license 开源许可证说明

package.json license 开源许可证说明

PHP的综合邮件工具

text 麻省理工学院许可证

01 . GitLab简介及环境部署