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中return 和 exit 、break和contiue 区别与用法
Apr 09 PHP
在项目中寻找代码的坏命名
Jul 14 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
php中如何防止表单的重复提交
Aug 02 PHP
PHP中imagick函数的中文解释
Jan 21 PHP
php通过ksort()函数给关联数组按照键排序的方法
Mar 18 PHP
PHP实现加强版加密解密类实例
Jul 29 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
Yii的Srbac插件用法详解
Jul 14 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
Dec 19 PHP
禁止直接访问php文件代码分享
May 05 PHP
goto语法在PHP中的使用教程
Sep 17 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和ACCESS写聊天室(九)
2006/10/09 PHP
php 生成文字png图片的代码
2011/04/17 PHP
php实现图片缩放功能类
2013/12/18 PHP
session 加入redis的实现代码
2016/07/15 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
Symfony查询方法实例小结
2017/06/28 PHP
用正则表达式替换图片地址img标签
2013/11/22 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Django返回json数据用法示例
2016/09/18 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
2014年清明节寄语
2014/04/03 职场文书
《恐龙》教学反思
2014/04/27 职场文书
法定代表人身份证明书
2014/09/10 职场文书
安全责任书
2015/01/29 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
关于五一放假的通知
2015/08/18 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
go 实现简易端口扫描的示例
2021/05/22 Golang
python元组打包和解包过程详解
2021/08/02 Python
python中 Flask Web 表单的使用方法
2022/05/20 Python
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android