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 相关文章推荐
phpBB BBcode处理的漏洞
Oct 09 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
php数组编码转换示例详解
Mar 11 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
Nginx下配置codeigniter框架方法
Apr 07 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
Mar 25 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
PHP实现的简单路由和类自动加载功能
Mar 13 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 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初学者(入门学习经验谈)
2010/10/12 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
JS实现图片切换特效
2019/12/23 Javascript
python使用生成器实现可迭代对象
2018/03/20 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
Python测试模块doctest使用解析
2019/08/10 Python
解决c++调用python中文乱码问题
2020/07/29 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
办理信用卡工作证明
2014/01/11 职场文书
最新创业融资计划书
2014/01/19 职场文书
青年教师培训方案
2014/02/06 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2015年度保密工作总结
2015/04/24 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
python之json文件转xml文件案例讲解
2021/08/07 Python