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 fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 PHP
php随机显示图片的简单示例
Feb 15 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
php中的异常和错误浅析
May 03 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
phpstorm 配置xdebug的示例代码
Mar 31 PHP
php DES加密算法实例分析
Sep 18 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 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 Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
php中的异常和错误浅析
2017/05/03 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
Python分治法定义与应用实例详解
2017/07/28 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
Python制作词云图代码实例
2019/09/09 Python
师范院校学生自荐信范文
2013/12/27 职场文书
服务承诺书范文
2014/05/19 职场文书
信访工作经验交流材料
2014/05/23 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书