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 相关文章推荐
初探PHP5
Oct 09 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
PHP5函数小全(分享)
Jun 06 PHP
使用PHP获取当前url路径的函数以及服务器变量
Jun 29 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
分享php分页的功能模块
Jun 16 PHP
php正则替换处理HTML页面的方法
Jun 17 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 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
DISCUZ 分页代码
2007/01/02 PHP
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
canvas时钟效果
2017/02/16 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
javascript实现留言板功能
2020/02/08 Javascript
python实现百度关键词排名查询
2014/03/30 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
Python协程的用法和例子详解
2017/09/09 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
python制作简单五子棋游戏
2019/06/18 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
经理职责范文
2013/11/08 职场文书
个人授权委托书范本
2014/04/03 职场文书
党员年终个人总结
2015/02/14 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
2021/09/04 SQL Server