首页 > 编程 > PHP > 正文

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

2020-03-22 20:25:21
字体:
来源:转载
供稿:网友
PHP yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
umeditor是啥,我只听过ueditor,你这umeditor是不是盗版的东东喃?umeditor呢,说白了就是mini版的ueditor,按照百度官方说法,其实就是编辑器中的"短软小",但是功能俱全。咳咳,咱们回归正题。
首先勒,咱们先去网址下载一份mini版的ueditor umeditor,注意哦,是um editor。
下载下来解压放到项目根目录下面的 /css目录下 命名为umeditor,具体位置各位随意,后面能引用的到就行。
第二步,我们先去扩展下backend/assets/Appset类,哎呀我擦,为啥要扩展这么个玩意,跟咱们的umeditor整合啥关系勒,半路杀出个程咬金出来。这里扩展下这个类文件的意图是为了接下来在文件中方便引入css html' target='_blank'>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教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表