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 相关文章推荐
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
PHP SQLite类
May 07 PHP
php 中文和编码判断代码
May 16 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
Jun 28 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
php对文件进行hash运算的方法
Apr 03 PHP
PHP实现批量上传单个文件
Dec 29 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
laravel自定义分页效果
Jul 23 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
实例讲解php将字符串输出到HTML
Jan 27 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
php 用sock技术发送邮件的函数
2007/07/21 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
python str与repr的区别
2013/03/23 Python
python中urllib模块用法实例详解
2014/11/19 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
python学生管理系统
2019/01/30 Python
Python3最长回文子串算法示例
2019/03/04 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
世界上最大的二手相机店:KEN
2017/05/17 全球购物
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
中学老师的自我评价
2013/11/07 职场文书
播音主持女孩的自我评价分享
2013/11/20 职场文书
找工作最新求职信
2013/12/22 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
银行求职自荐书
2014/06/25 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
今日说法观后感
2015/06/08 职场文书
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis