1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Yii结合CKEditor实现图片上传功能

Yii结合CKEditor实现图片上传功能

时间:2019-01-29 23:01:38

相关推荐

Yii结合CKEditor实现图片上传功能

php教程|php手册

Yii,实现CKEditor图片上传

php教程-php手册

查看网站的源码目录,ubuntu外观基于壁纸,爬虫当当python语言,php keystore,seo优化讲师lzw

这篇文章主要介绍了Yii结合CKEditor实现图片上传功能,Yii是大名鼎鼎的PHP开发框架,CKEditor则是大名鼎鼎的所见即所得编辑器,需要的朋友可以参考下

分享抽奖红包网站源码,ubuntu终端无法联网,tomcat热部署的作用,群居的爬虫,php实现推送文件,平台seo与独立站seolzw

二维码签到系统源码,vscode 对比冲突,ubuntu分区方案 多硬盘,dotnet和tomcat,sqlite 时间差,ok插件视频播放器,手机前端框架哪个更好,爬虫系统项目计划,linux php启动,joo yeon-seo韩国女星,中小学网站模板免费下载,网页图文管理系统php,linux论坛模板,免费页面网站,开源api管理系统,娱乐源码程序lzw

这几天做的一个项目中需要在所见即所得编辑器中实现图片上传的功能,我因为比较喜欢CKEditor的界面而选择了它。虽然有跟CKEditor配合良好的CKFinder,不过这个东东的功能太复杂,简单看了下CKEdtior的文档,发现这个功能还是可以自己实现而不用借助CKFinder的。

下面代码虽然基于Yii Framework的,但是用其他框架或者语言思路却是完全一样的,有需要的童鞋可以参考一下。

首先要让CkEditor出现图片上传的功能,需要配置编辑器的filebrowserImageUploadUrl属性:

复制代码 代码如下:

CKEDITOR.replace( ‘editor1’,

{

filebrowserUploadUrl : ‘/uploader/upload.php’,

filebrowserImageUploadUrl : ‘/uploader/upload.php?type=Images’

});

然后在对应的URL上实现图片上传的功能,并向CKEditor返回特定格式的HTML代码,CKEditor就能正常预览并插入图片了。

下面只截取控制器的部分代码,Controller部分我是这样实现的:

复制代码 代码如下:

/**

* 保存上传的图片

*

* @return string javascript code

* @author lfyzjck

**/

public function actionImg($type, $CKEditor, $CKEditorFuncNum, $langCode = ‘zh-cn’)

{

if(empty($CKEditorFuncNum) || $type != ‘Images’){

$this->mkhtml($CKEditorFuncNum,”,’错误的函数调用’);

}

if(isset($_FILES[‘upload’])){

//获取关于图片上传配置

$options = Options::model()->findByPk(1);

$form = new UploadForm(‘image’,$options);

$form->upload = CUploadedFile::getInstanceByName(‘upload’);

if($form->validate()){

//文件名:时间+源文件名

$target_filename = date(‘Ymd-hm’,time()).$form->upload->getName();

$path = Yii::app()->basePath.’/../uploads/’.$target_filename; //图片保存路径

$form->upload->saveAs($path);

$this->mkhtml($CKEditorFuncNum,Yii::app()->baseUrl.’/uploads/’.$target_filename, “上传成功”);

}

else{

$this->mkhtml($CKEditorFuncNum,”,$form->getError(‘upload’));

}

}

}

/**

* 返回CKEditor的提示信息

*

* @return void

* @author lfyzjck

**/

private function mkhtml($fn, $fileurl, $message)

{

$str = ”;

exit($str);

}

需要特别说明的mkhtml函数,,他会调用CKEditor的函数产生提示信息。上传成功的时候将图片链接返回,CKEditor会根据URL生成图片预览。

然后是UploadForm的代码,这里会验证图片的格式和大小是否符合要求。

复制代码 代码如下:

class UploadForm extends CFormModel

{

public $upload;

private $options;

private $type;

public function __construct($type, $options){

$this->options = $options;

$this->type = $type;

}

/**

* Declares the validation rules.

* The rules state that username and password are required,

* and password needs to be authenticated.

*/

public function rules()

{

return array(

array(‘upload’, ‘file’,

‘types’ => $this->options->getAttribute(“allow_”.$this->type.”_type”),

‘maxSize’ => 1024 * (int)$this->options->getAttribute(“allow_”.$this->type.”_maxsize”),

‘tooLarge’=>’文件大小超过限制’,

),

);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。