yii2实现Ueditor百度编辑器的示例代码


Posted in PHP onNovember 02, 2018

今天在网上看了下有关图片上传的教程,历经挫折才调试好,现在把相关代码及其说明贴出来,以供初次使用的朋友们参考。

资源下载

yii2.0-ueditor下载路径:yii2-ueditor-3water.rar

效果演示:

yii2实现Ueditor百度编辑器的示例代码

安装方法:

1.下载yii2-ueditor
2.将下载的yii2-ueditor-master 修改 ueditor (注意:修改成其他文件名请修改插件内对应的命名空间)
3.将文件方在 根目录/common/widgets 下即可

调用方法:

在backend/controllers中新建一个控制器Demo加入以下代码

public function actions(){
 return [
 'ueditor'=>[
  'class' => 'common\widgets\ueditor\UeditorAction',
  'config'=>[
  //上传图片配置
  'imageUrlPrefix' => "", /* 图片访问路径前缀 */
  'imagePathFormat' => "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
  ]
 ]
 ];
}

第一种调用方式:

在对应的渲染页面,即views下的页面中

<?=common\widgets\ueditor\Ueditor::widget(['options'=>['initialFrameWidth' => 850,]])?>

options 填写配置编辑器的参数(参考ueditor官网)

第二种调用方式:

<?php $form = ActiveForm::begin(); ?>

<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>

<?= $form->field($model, 'content')->widget('common\widgets\ueditor\Ueditor',[
 'options'=>[
 'initialFrameWidth' => 850,
 ]
]) ?>

 ...

<?php ActiveForm::end(); ?>

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

创建一个 common/models/Upload.php:代码为:

<?PHP
namespace common\models;

use yii\base\Model;
use yii\web\UploadedFile;

/**
 * UploadForm is the model behind the upload form.
 */
class Upload extends Model
{
 /**
 * @var UploadedFile file attribute
 */
 public $file;

 /**
 * @return array the validation rules.
 */
 public function rules()
 {
 return [
  [['file'], 'file'],
 ];
 }
}

需要在刚刚创建的那个控制器Demo里添加actionUploadImage方法处理“富文本框的图片上传”内容

use yii\web\UploadedFile;
use common\models\Upload;
/**
 * 富文本框的图片上传
 * @return array
 */
 public function actionUploadImage()
 {
 $model = new Upload();
 if (Yii::$app->request->isPost) {
  $model->file = UploadedFile::getInstance($model, "file");
  $dir = '/uploads/ueditor/';//文件保存目录
  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
use yii\widgets\ActiveForm;
?>

 <?= $form->field($model, 'content')->widget('common\widgets\ueditor\Ueditor',[
 'options'=>[
  'initialFrameWidth' => 1050,//宽度
  'initialFrameHeight' => 550,//高度
 ]
 ]) ?>
<div class="form-group">
 <?= Html::submitButton('保存', ['class' => 'btn btn-success']) ?>
 </div>

<?php ActiveForm::end() ?>

其中content是字段名称

关于图片上传的可以看下:https://3water.com/article/150018.htm

在YII2框架中使用UEditor编辑器发布文章的地址:https://3water.com/article/150022.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP自动生成月历代码
Oct 09 PHP
php学习笔记之面向对象编程
Dec 29 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
Jun 17 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
May 27 PHP
Yii实现复选框批量操作实例代码
Mar 15 PHP
php7 安装yar 生成docker镜像
May 09 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 PHP
laravel中Redis队列监听中断的分析
Sep 14 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 #PHP
Linux下 php7安装redis的方法
Nov 01 #PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
Oct 31 #PHP
php图片裁剪函数
Oct 31 #PHP
php+js实现裁剪任意形状图片
Oct 31 #PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 #PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 #PHP
You might like
SONY ICF-SW55的电路分析
2021/03/02 无线电
sae使用smarty模板的方法
2013/12/17 PHP
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
React应用中使用Bootstrap的方法
2017/08/15 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
Python中字符编码简介、方法及使用建议
2015/01/08 Python
初步讲解Python中的元组概念
2015/05/21 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
python和opencv实现抠图
2018/07/18 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
python实现数字炸弹游戏程序
2020/07/17 Python
聊聊python中的异常嵌套
2020/09/01 Python
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
小学国庆节活动方案
2014/02/11 职场文书
信息技术教学反思
2014/02/12 职场文书
初中家长寄语
2014/04/02 职场文书
优秀员工推荐信
2014/05/10 职场文书
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
申报优秀教师材料
2014/12/16 职场文书
民事起诉状范文
2015/05/19 职场文书
2015年财政局工作总结
2015/05/21 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫