简单先预览一下界面吧:



好了,由于默认提供的php接口是原生php的,如果想整合进后台并能够受到权限控制系统的管理,那是最好不过了。看了一下,发现这个插件结构还挺清晰的,于是稍微弄了一下就支持了。
elfinder官网:http://elfinder.org/
elfinder手册:https://github.com/Studio-42/elFinder/wiki
elfinder下载:https://github.com/downloads/Studio-42/elFinder/elfinder-2.0-rc1.tar.gz
先下载下来,解压,将文件夹名字改为elfinder,然后将其复制到项目Public目录中。目录结构如下:
/
index.php 入口文件
uploads 上传文件保存目录
Public 公共目录
-elfinder elfinder文件管理器
-css
-img
-js
-php
Home 项目目录
-Lib
-Action 控制器目录
-FileAction.class.php 文件管理器模块
-Tpl 模板目录
-File
-index.html 文件管理器模板
……其他目录省略
一、前端部署首先将elfinder/js/i18n/下的zh_CN.js之外的文件都删掉,我们只需要中文语言包。
创建FileAction模块,我们就以它默认首页作为文件管理器访问入口,所以对应模板也就是 Tpl/File/index.html,这个模板文件我们需要从elfinder/下将elfinder.html这个文件复制过来并改名为index.html.
我们先修改模板index.html:
1.里面的jquery和jquery.ui库是直接从谷歌加载的,如有需要请换成你自己本地的
2.两个css,两个elfinder的js文件,将路径前面分别加上__PUBLIC__/elfinder/,形如:<sc
3.初始化elfinder插件根据elfinder手册自己看着办,这里我们需要指定一下语言和php入口,如下仅供参考:
<script type="text/javascript" charset="utf-8">
$().ready(function() {
var elf = $('#elfinder').elfinder({
url : "{:U('File/connect')}" // 这里设置为File模块的index方法,用U方法构建
lang: 'zh_CN', // language (OPTIONAL)
}).elfinder('instance');
});
</script>
到这里前端配置完毕,最后记得将elfinder/elfinder.html删掉,防止别人从外部非法访问。二、模块配置
我们打开FileAction.class.php,创建index方法和connect方法:
class FileAction extends Action{
function index(){
$this->display();
}
function connect(){
define("IN_ADMIN",1);//重要,定义一个常量,在插件的PHP入口文件中验证,防止非法访问。
include './Public/elfinder/php/connector.php';//包含elfinder自带php接口的入口文件
}
}
保存。打开并修改Public/elfinder/php/connector.php
在开头添加一行
if(!defined('IN_ADMIN')) exit;//验证是否有定义IN_ADMIN常量,没有直接退出,防止非法访问
接着往下,修改上传路径相关的一些参数,仅列出我的以供参考:$opts = array(
// 'debug' => true,
'roots' => array(
array(
'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED)
'path' => './uploads/', // 上传文件目录的物理路径(必须)
'URL' => __ROOT__.'/uploads/', // 上传文件目录的URL
'accessControl' => 'access' // disable and hide dot starting files (OPTIONAL)
)
)
);
请各位根据需求自己修改,driver可以是MySql,支持数据库保存文件信息。这里有一篇博文介绍这个配置的http://my.oschina.net/sherry1026/blog/132890
最后有兴趣的同学亲自试试看吧!
最佳答案
