Yii整合Ckeditor和Ckfinder上传文件(让我蛋碎一下午) | 饭饭博客
2012-12-02 14:39
716 查看
作者:饭饭 发布:2012-11-22 18:39 分类:PHP,YII,开发工具 阅读:25 浏览数
抢沙发
啥话不说,我要骂两个人!第一:http://www.58os.com/BBS/TechBSS/Article-1367.html,这篇文章的作者,第二:http://hi.baidu.com/layooo/item/1f289ff044de002f743c4cd4
这篇文章的作者,这两个坑爹的,写文章你要写完整呀,哪能这样坑我们这些天真的孩子呢!!!让我蛋碎一下午!!!不说了,切入正题。
2.在类CKEditorWidget中添加 $ckFinder成员变量
3.在类CKeditorWidget中的run方法开始添加
if(!isset($this->ckFinder)){
$this->ckFinder = Yii::app()->basePath.”/../ckfinder/ckfinder.php”;}4.最后修改run方法中调用的render方法的第二个数组参数,添加 “ckFinder”=>$this->ckFinder 键值对,最终的CKEditorWidget类的代码应该为类似如下内容:
5.打开 项目/ckfinder/config.php,配置以下内容
$baseUrl = ‘upload/’;//上传的文件所在的根目录
$baseDir=’F:/php_dev/apache/htdocs/DvoraBlog/upload/’;//根目录所在的绝对地址
我们来看ckfinder里的config.php里的一句注视:
$baseDir : the path to the local directory (in the server) which points to the
above $baseUrl URL. This is the path used by CKFinder to handle the files in
the server. Full write permissions must be granted to this directory.
Examples:
// You may point it to a directory directly:
$baseDir = ‘/home/login/public_html/ckfinder/files/’;$baseDir = ‘C:/SiteDir/CKFinder/userfiles/’;// Or you may let CKFinder discover the path, based on $baseUrl.
// WARNING: resolveUrl() *will not work* if $baseUrl does not start with a slash (“/”),// for example if $baseDir is set to http://example.com/ckfinder/files/
$baseDir = resolveUrl($baseUrl);大致意思 就是说 如果你baseUrl使用的是相对地址 那么resolveUrl()这个函数就废掉了,你得自己手动设置$baseDir,并给出了win下linux下的配置实例。
到此,我都是按照我骂的第一位仁兄的方法配置的,打开页面一看,咦,激动了,出来了浏览服务器按钮,可是,但我点下去的时候蛋碎了,尼玛,是空白!!这就是我骂他的原因。
接下来我找啊找啊,终于找到一个貌似靠谱的了,也就是第二位仁兄的补充方法
在protected/extensions/ckeditor/views/CKEditorView.php下加上这一句:
尼玛,这不加还好,一加果断报错。但我的感觉告诉我这位仁兄的方法靠谱,于是我看了一下错误,原来时自动加载出错。仔细分析一下,以为CKFinder是文件ckfinder下的core下的ckfinder_php5.php里的类,因为这个问价是位于protected文件夹外,所以无法自动加载。于是我在protected/extensions/ckeditor/views/CKEditorView.php里include进来ckfinder/core/ckfinder_php5.php这个问件,Ok,好了!庆贺一下!
本文固定链接: http://www.wukunfan.com/index.php/yii-ckeditor-ckfinder.html | 饭饭博客
抢沙发
啥话不说,我要骂两个人!第一:http://www.58os.com/BBS/TechBSS/Article-1367.html,这篇文章的作者,第二:http://hi.baidu.com/layooo/item/1f289ff044de002f743c4cd4
这篇文章的作者,这两个坑爹的,写文章你要写完整呀,哪能这样坑我们这些天真的孩子呢!!!让我蛋碎一下午!!!不说了,切入正题。
1.准备
首先到http://ckeditor.com/ 下载ckeditor;然后到http://ckfinder.com/ 下载ckfinder;最后到http://www.yiiframework.com/extension/ckeditor-integration 下载ckeditor widget2.安装
将下载到的ckeditor和ckfinder的zip包,解压到yii项目的根目录,并将ckeditor widget解压到yii项目的extension,形成的目录结果如下图所示:3.配置
1.首先打开 项目/protected/extensions/ckeditor/CKEditorWidget.php2.在类CKEditorWidget中添加 $ckFinder成员变量
3.在类CKeditorWidget中的run方法开始添加
if(!isset($this->ckFinder)){
$this->ckFinder = Yii::app()->basePath.”/../ckfinder/ckfinder.php”;}4.最后修改run方法中调用的render方法的第二个数组参数,添加 “ckFinder”=>$this->ckFinder 键值对,最终的CKEditorWidget类的代码应该为类似如下内容:
01 | class CKEditorWidget extends CInputWidget |
02 | { |
03 | public $ckEditor ; |
04 | public $ckBasePath ; |
05 | public $ckFinder ; |
06 | public $defaultValue ; |
07 | public $config ; |
08 | public function run() |
09 | { |
10 | if (!isset( $this ->model)){ |
11 | throw new CHttpException(500, '"model" have to be set!' ); |
12 | } |
13 | if (!isset( $this ->attribute)){ |
14 | throw new CHttpException(500, '"attribute" have to be set!' ); |
15 | } |
16 | if (!isset( $this ->ckEditor)){ |
17 | $this ->ckEditor = Yii::app()->basePath. "/../ckeditor/ckeditor.php" ; |
18 | } |
19 | if (!isset( $this ->ckFinder)){ |
20 | $this ->ckFinder = Yii::app()->basePath. "/../ckfinder/ckfinder.php" ; |
21 | } |
22 | if (!isset( $this ->ckBasePath)){ |
23 | $this ->ckBasePath = Yii::app()->baseUrl. "/ckeditor/" ; |
24 | } |
25 | if (!isset( $this ->defaultValue)){ |
26 | $this ->defaultValue = "" ; |
27 | } |
28 | $controller = $this ->controller; |
29 | $action = $controller ->action; |
30 | $this ->render( 'CKEditorView' , array ( |
31 | "ckFinder" => $this ->ckFinder, |
32 | "ckBasePath" => $this ->ckBasePath, |
33 | "ckEditor" => $this ->ckEditor, |
34 | "model" => $this ->model, |
35 | "attribute" => $this ->attribute, |
36 | "defaultValue" => $this ->defaultValue, |
37 | "config" => $this ->config, |
38 | )); |
39 | } |
40 | } |
$baseUrl = ‘upload/’;//上传的文件所在的根目录
$baseDir=’F:/php_dev/apache/htdocs/DvoraBlog/upload/’;//根目录所在的绝对地址
我们来看ckfinder里的config.php里的一句注视:
$baseDir : the path to the local directory (in the server) which points to the
above $baseUrl URL. This is the path used by CKFinder to handle the files in
the server. Full write permissions must be granted to this directory.
Examples:
// You may point it to a directory directly:
$baseDir = ‘/home/login/public_html/ckfinder/files/’;$baseDir = ‘C:/SiteDir/CKFinder/userfiles/’;// Or you may let CKFinder discover the path, based on $baseUrl.
// WARNING: resolveUrl() *will not work* if $baseUrl does not start with a slash (“/”),// for example if $baseDir is set to http://example.com/ckfinder/files/
$baseDir = resolveUrl($baseUrl);大致意思 就是说 如果你baseUrl使用的是相对地址 那么resolveUrl()这个函数就废掉了,你得自己手动设置$baseDir,并给出了win下linux下的配置实例。
4.使用
在需要使用文本编辑器的时候,使用widget方式加入到页面中01 | <?php $this ->widget( 'ext.ckeditor.CKEditorWidget' , array ( |
02 | "model" => $model , # 数据模型 |
03 | "attribute" => 'content' , # 数据模型中的字段 |
04 | "defaultValue" => "Test Text" , # 默认值 "config" => array ( |
05 | "height" => "400px" , |
06 | "width" => "100%" , |
07 | "toolbar" => "Full" ,#工具条全部显示, |
08 | "filebrowserBrowseUrl" => '/ckfinder/ckfinder.php' #这里很关键,设置这个后,打开上传功能和浏览服务器功能 |
09 | ), |
10 | #Optional address settings if you did not copy ckeditor on application root |
11 | # "ckEditor" =>Yii::app()->basePath. "/ckeditor/ckeditor.php" , |
12 | # Path to ckeditor.php |
13 | # "ckBasePath" =>Yii::app()->baseUrl. "/ckeditor/" , |
14 | # Realtive Path to the Editor (from Web-Root) |
15 | ) ); |
16 | ?> |
接下来我找啊找啊,终于找到一个貌似靠谱的了,也就是第二位仁兄的补充方法
在protected/extensions/ckeditor/views/CKEditorView.php下加上这一句:
1 | CKFinder::SetupCKEditor( $oCKeditor , Yii::app()->baseUrl . '/ckfinder/' ); |
本文固定链接: http://www.wukunfan.com/index.php/yii-ckeditor-ckfinder.html | 饭饭博客
相关文章推荐
- Yii整合Ckeditor和Ckfinder上传文件
- CKEditor与CKFinder整合并实现文件上传功能
- jsp中如何整合CKEditor+CKFinder实现文件上传
- HTML编辑器 -- CKEditor4.2(工具栏配置等)与CKFinder2.3整合(上传文件)
- Ckeditor与Ckfinder(java)整合实现富媒体内容编辑(支持文件上传)
- 整合ckeditor+ckfinder,解决上传文件路径问题
- CKEditor 整合CKFinder实现文件上传及富文本操作
- CKEditor与CKFinder整合并实现文件上传功能
- 整合ckeditor3.6+ckfinder2.1及修改文件上传路径和重命名
- CKEditor与CKFinder整合并实现文件上传功能
- CKEditor和CKFinder整合实现上传下载功能
- 在YII项目中使用ckeditor和ckfinder快速部署文本编辑器并实现图片上传
- struts2整合CKEditor和CKFinder,图片上传失败问题
- CKEditor和CKFinder整合实现上传下载功能
- CKEditor 3.6.2+CKFinder2.2.2配置,实现文件上传
- liftweb整合ckfinder进行文件上传与管理
- [CakePHP] 如何在cakephp下使用ckeditor和ckfinder上传文件
- struts2整合CKEditor和CKFinder实现上传
- CKEditor和CKFinder整合实现上传下载功能 【转】
- ckEditor+ckFinder整合实现上传功能