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 中的输出缓冲
Dec 21 PHP
PHP的变量总结 新手推荐
Apr 18 PHP
PHP 转义使用详解
Jul 15 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
php生成shtml类用法实例
Dec 09 PHP
ThinkPHP路由机制简介
Mar 23 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 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使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
Python 流程控制实例代码
2009/09/25 Python
python批量修改文件后缀示例代码分享
2013/12/24 Python
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
python制作小说爬虫实录
2017/08/14 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
大学军训感言400字
2014/03/11 职场文书
闭幕式主持词
2014/04/02 职场文书
服务标兵事迹材料
2014/05/04 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
建筑管理专业求职信
2014/07/28 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
班主任寄语2015
2015/02/26 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
MySQL系列之十一 日志记录
2021/07/02 MySQL
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python