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 5.5 新特性
Jul 02 PHP
php读取excel文件的简单实例
Aug 26 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 PHP
php实现refresh刷新页面批量导入数据的方法
Dec 23 PHP
php实现修改新闻时删除图片的方法
May 12 PHP
PHP实现微信发红包程序
Aug 24 PHP
10款实用的PHP开源工具
Oct 23 PHP
php面向对象值单例模式
May 03 PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
php表单处理操作
Nov 16 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获取汉字的拼音(全部与首字母)
2013/06/27 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
python各种语言间时间的转化实现代码
2016/03/23 Python
Python多进程fork()函数详解
2019/02/22 Python
Python实现代码统计工具
2019/09/19 Python
Python pandas库中的isnull()详解
2019/12/26 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
DOM和JQuery对象有什么区别
2016/11/11 面试题
丽江古城导游词
2015/02/03 职场文书
单位介绍信格式范文
2015/05/04 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android