yii2实现Ueditor百度编辑器的示例代码
时间:2022-07-27
本文章向大家介绍yii2实现Ueditor百度编辑器的示例代码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
今天在网上看了下有关图片上传的教程,历经挫折才调试好,现在把相关代码及其说明贴出来,以供初次使用的朋友们参考。
资源下载
yii2.0-ueditor下载路径:yii2-ueditor-jb51.rar
效果演示:
安装办法:
1.下载yii2-ueditor 2.将下载的yii2-ueditor-master 修改 ueditor (注意:修改成其他文件名请修改插件内对应的命名空间) 3.将文件方在 根目录/common/widgets 下即可
调用办法:
在backend/controllers中新建一个控制器Demo加入以下代码
public function actions(){
return [
'ueditor'= [
'class' = 'commonwidgetsueditorUeditorAction',
'config'= [
//上传图片配置
'imageUrlPrefix' = "", /* 图片访问路径前缀 */
'imagePathFormat' = "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
]
]
];
}
第一种调用方式:
在对应的渲染页面,即views下的页面中
<?=commonwidgetsueditorUeditor::widget(['options'= ['initialFrameWidth' = 850,]])?
options 填写配置编辑器的参数(参考ueditor官网)
第二种调用方式:
<?php $form = ActiveForm::begin(); ?
<?= $form- field($model, 'title')- textInput(['maxlength' = true]) ?
<?= $form- field($model, 'content')- widget('commonwidgetsueditorUeditor',[
'options'= [
'initialFrameWidth' = 850,
]
]) ?
...
<?php ActiveForm::end(); ?
yii2框架整合了百度编辑器,因为文件上传采用的是yii2自带的UploadedFile,这就难免umeditor上传不成功问题,解决问题的只需要两个操作步骤,我们来看看具体实现
创建一个 common/models/Upload.php:代码为:
<?PHP
namespace commonmodels;
use yiibaseModel;
use yiiwebUploadedFile;
/**
* 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 yiiwebUploadedFile;
use commonmodelsUpload;
/**
* 富文本框的图片上传
* @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 yiiwidgetsActiveForm;
?
<?= $form- field($model, 'content')- widget('commonwidgetsueditorUeditor',[
'options'= [
'initialFrameWidth' = 1050,//宽度
'initialFrameHeight' = 550,//高度
]
]) ?
<div class="form-group"
<?= Html::submitButton('保存', ['class' = 'btn btn-success']) ?
</div
<?php ActiveForm::end() ?
其中content是字段名称
关于图片上传的可以看下:https://www.zalou.cn/article/150018.htm
在YII2框架中使用UEditor编辑器发布文章的地址:https://www.zalou.cn/article/150022.htm
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持网站事(zalou.cn)。
- WCDB 的 WAL 模式和异步 Checkpoint
- Dotnet 2.0配置系统
- 小程序-实现竖排文字(二)
- 仿淘宝收货地址,本地数据库
- 小程序-实现竖排文字
- 【深度学习量化投资】RNNs在股票价格预测的应用基于Keras
- 关于webview调用js出现has no method 'toString'
- 深入学习Apache Spark和TensorFlow
- 搭建 WPF 上的 UI 自动化测试框架
- ttf设置文字字体
- R语言构建追涨杀跌量化交易模型(附源代码)
- Apache Spark中使用DataFrame的统计和数学函数
- android进程 清理及activity栈管理
- 机器学习模型的变量评估和选择基于技术指标『深度解析』
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一次系统扩容引起的elasticsearch故障及恢复
- WPF SharpDx 性能优化方法
- java中的reference(四): WeakReference的应用--ThreadLocal源码分析
- 聊聊dubbo-go的availableCluster
- 删除排序链表中重复元素的方法
- java异常体系及1.7中的try-with-resources
- JAVA中的静态代理、动态代理以及CGLIB动态代理分析
- 基于centos7 搭建storm1.2.3集群过程
- JAVA中的浅克隆和深克隆分析
- mysql表占用多少磁盘空间以及清理表空间
- 基于docker快速搭建hbase集群
- 在springboot中对kafka进行读写操作
- [883]python安装包出现Retrying
- 深入理解java虚拟机学习笔记(三)-虚拟机性能监控与故障处理工具
- [884]Elasticsearch可视化工具