yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法


Posted in PHP onApril 20, 2016

我们接下来就来聊聊Yii2框架是如何整合百度编辑器umeditor的。

umeditor是啥,我只听过ueditor,你这umeditor是不是盗版的东东喃?umeditor呢,说白了就是mini版的ueditor,按照百度官方说法,其实就是编辑器中的"短软小",但是功能俱全。咳咳,咱们回归正题。

首先勒,咱们先去官网下载一份mini版的ueditor umeditor,注意哦,是um editor。

下载下来解压放到项目根目录下面的 /css目录下 命名为umeditor,具体位置各位随意,后面能引用的到就行。

第二步,我们先去扩展下backend\assets\Appset类,哎呀我擦,为啥要扩展这么个玩意,跟咱们的umeditor整合啥关系勒,半路杀出个程咬金出来。这里扩展下这个类文件的意图是为了接下来在文件中方便引入css js文件滴。

很简单,在Appset方法中增加下面两个方法即可

//定义按需加载JS方法,注意加载顺序在最后 
public static function addScript($view, $jsfile) { 
$view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'backend\assets\AppAsset']); 
} 
//定义按需加载css方法,注意加载顺序在最后 
public static function addCss($view, $cssfile) { 
$view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'backend\assets\AppAsset']); 
}

接下来,按照下面的配置即可。

先做说明,此处我们假设有一个文章article表,有一个内容content字段需要显示为百度编辑器。

按照yii2的表单模型来看,我们修改article\_form.php文件中的content字段

<?= $form->field($model, 'content')->textarea(['style' => 'width:760px;height:500px;']) ?>

该文件引入Appset类并引入相关的css js文件如下

use backend\assets\AppAsset;
AppAsset::register($this);
AppAsset::addCss($this,'/css/umeditor/themes/default/css/umeditor.css');
AppAsset::addScript($this,'/css/umeditor/umeditor.config.js');
AppAsset::addScript($this,'/css/umeditor/umeditor.min.js');
AppAsset::addScript($this,'/css/umeditor/lang/zh-cn/zh-cn.js');

然后只需要在当前页面底部注册下面的js代码即可实现

<?php $this->beginBlock('js-block') ?>
$(function () {
var um = UM.getEditor('article-content', {
});
});
<?php $this->endBlock() ?>
<?php $this->registerJs($this->blocks['js-block'], \yii\web\View::POS_END); ?>

关于article-content怎么来滴喃,这个就是我们要绑定的目标对象,即content。article-content是当前该对象的id标识。

ok,到此百度编辑器基本上整合完毕,现在赶快去添加一篇文章试试看吧,记得更新看看编辑器里面是否也有内容哦。

下面给大家介绍 yii2解决百度编辑器umeditor图片上传问题。

yii2框架整合了百度编辑器,因为文件上传采用的是yii2自带的UploadedFile,这就难免umeditor上传不成功问题,解决问题的只需要两个操作步骤,我们来看看具体实现

首先我们先把umeditor的配置搞好,这里只需要更改imageUrl配置项即可,我们修改其指向/tools/um-upload

那下一步自然是实现/tools/um-upload方法了,

按照ueditor的实现来看,这里我们上传成功后只需要返回成功信息即可

use backend\models\Upload;
use yii\web\UploadedFile;
/**
* 百度umeditor上传
*/
public function actionUmUpload ()
{
$model = new Upload();

if (Yii::$app->request->isPost) {

$model->file = UploadedFile::getInstance($model, 'file');

$dir = ‘文件保存目录';
if (!is_dir($dir))
mkdir($dir);

if ($model->validate()) {
$fileName = $model->file->baseName . '.' . $model->file->extension;
$dir = $dir.'/'. $fileName;
$model->file->saveAs($dir);
$info = [
"originalName" => $model->file->baseName,
"name" => $model->file->baseName,
"url" => $dir,
"size" => $model->file->size,
"type" => $model->file->type,
"state" => 'SUCCESS',
];
exit(json_encode($info));
} 
}
}

特别提醒:上述返回的$info信息中state状态只能是SUCCESS,区分大小写

PHP 相关文章推荐
浅析SVN常见问题及解决方法
Jun 21 PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
百度实时推送api接口应用示例
Oct 21 PHP
php常用数学函数汇总
Nov 21 PHP
在php和MySql中计算时间差的方法详解
Mar 27 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
七种PHP开发环境搭建工具
Jun 28 PHP
又拍云异步上传实例教程详解
Apr 19 #PHP
ThinkPHP中order()使用方法详解
Apr 19 #PHP
ThinkPHP中limit()使用方法详解
Apr 19 #PHP
ThinkPHP中where()使用方法详解
Apr 19 #PHP
yii2中的rules 自定义验证规则详解
Apr 19 #PHP
PHP序列化/对象注入漏洞分析
Apr 18 #PHP
php实现三级级联下拉框
Apr 17 #PHP
You might like
PHP设计模式 注册表模式
2012/02/05 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
js压缩利器
2007/02/20 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
读jQuery之五(取DOM元素)
2011/06/20 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
用matplotlib画等高线图详解
2017/12/14 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
在Python中使用Neo4j的方法
2019/03/14 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
一些Solaris面试题
2015/12/22 面试题
汉语专业应届生求职信
2013/10/01 职场文书
自我鉴定书面格式
2014/01/13 职场文书
合唱兴趣小组活动总结
2014/07/10 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书