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 excel类 phpExcel使用方法介绍
Aug 21 PHP
PHP的异常处理类Exception的使用及说明
Jun 13 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
php include类文件超时问题处理
Feb 06 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
Ajax+Jpgraph实现的动态折线图功能示例
Feb 11 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上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
php Session无效分析资料整理
2016/11/29 PHP
cakephp常见知识点汇总
2017/02/24 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
PNG背景在不同浏览器下的应用
2009/06/22 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
英国现代市场:ARKET
2019/04/10 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
Ruby如何实现动态方法调用
2012/11/18 面试题
秘书岗位职责
2013/11/18 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
车间主任岗位职责
2015/02/03 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
工资证明格式模板
2015/06/12 职场文书
学困生转化工作总结
2015/08/13 职场文书
教育教学工作反思
2016/02/24 职场文书