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&amp;mysql(五)
Oct 09 PHP
php 字符过滤类,用于过滤各类用户输入的数据
May 27 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
PHP设置进度条的方法
Jul 08 PHP
php查询操作实现投票功能
May 09 PHP
centos 7.2下搭建LNMP环境教程
Nov 20 PHP
laravel创建类似ThinPHP中functions.php的全局函数
Nov 26 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
阿里云的WindowsServer2016上部署php+apache
Jul 17 PHP
PHP如何开启Opcache功能提升程序处理效率
Apr 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
php5.4传引用时报错问题分析
2016/01/22 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
jquery text()要注意啦
2009/10/30 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
Python实现的双色球生成功能示例
2017/12/18 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
python 读取.nii格式图像实例
2020/07/01 Python
班班通校本培训方案
2014/03/12 职场文书
教育基金募捐倡议书
2014/05/14 职场文书
公司授权委托书范文
2014/08/02 职场文书
合作协议书格式
2014/08/19 职场文书
javascript函数式编程基础
2021/09/15 Javascript
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
Python中三种花式打印的示例详解
2022/03/19 Python