yii2-Ueditor百度编辑器

今天在网上看了下有关图片上传的教程,历经挫折才调试好,现在把相关代码及其说明贴出来,以供初次使用的朋友们参考。

资源下载

yii2.0-ueditor下载路径:


https://link.jianshu.com?t=https://github.com/org-yii-china/yii2-ueditor/archive/master.zip

效果演示:

安装方法:

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://www.yiichina.com/tutorial/862

在YII2框架中使用UEditor编辑器发布文章的地址:


https://www.cnblogs.com/felixji/p/6698436.html

原文地址:https://segmentfault.com/a/1190000016878464

原文地址:https://www.cnblogs.com/lalalagq/p/9964038.html

时间: 2024-10-07 08:45:00

yii2-Ueditor百度编辑器的相关文章

angularjs利用指令调用ueditor百度编辑器

ueditor中文是百度编辑器,而angularjs是一款优秀的前端JS框架了,下面我们来介绍在angularjs调用ueditor百度编辑器例子,有兴趣的可一起来看看. 一直以来,angularjs的富文本编辑器都比较难做,主要是第三方的编辑器很难集成进来,今天花时间研究了一下,发现ueditor主要加载两个js文件 ueditor.config.js ueditor.all.js 能不能把这两个文件异步加载呢?答案是肯定的.我们新建一个服务用来异步加载资源,并设置必要的回调方法. 服务代码:

dedecms织梦添加ueditor百度编辑器(支持本地图片水印)

本站所有附件均为UTF-8版本,GBK版本的童学请自行转码: 教程最下面有解决栏目内容添加失败的解决方法和本地上传图片加水印方法. 最终效果 1.直接到百度编辑器官方下载PHP对应的版本 ueditor官方地址:http://ueditor.baidu.com/website/download.html 2.dedecms 程序 include文件夹下,创建 ueditor 文件夹 把下载到的ueditor文件扔进去(index.html不要) 3.include\inc\inc_fun_fun

ueditor 百度编辑器 配置如何上传图片

1.准备工作 下载地址  http://ueditor.baidu.com/website/ 下载出来 你所需要的udditor版本 2.解压出来 3.导包 解压出来文件jsp下的lib导入  到项目中web-inif 下的lib中 注意: 如果导入包仍然报 inser... server  ... 这种错误,把包导入 服务器 lib下 4.修改配置文件 ueditor.config.js window.UEDITOR_HOME_URL = "/default/eos/"; 从注释中取

Ueditor百度编辑器中的 setContent()方法的使用

百度编辑器Ueditor所提供的setContent()方法作用是:设置或者改变编辑器里面的文字内容或html内容 函数说明:setContent(string,boolean); 参数string 是需要设置到编辑器里面的内容,可以含有HTML代码,最后插入到编辑器中的内容是经过 编辑器内置过滤器过滤后的内容,同时该函数会出发selectionchange 事件. 参数:boolean,(true/false) true表示清空编辑器俩面的内容,在内容后面添加内容,不传,默认是true:fal

UEditor百度编辑器,工具栏添加一个普通按钮

添加一个名叫“hougelou”的普通按钮 附言:以下是以UEditor .Net版本举例说明. 第一步:找到ueditor.config.js文件中的toolbars数组,增加一个“hougelou”字符串,然后找到labelMap数组,对应着添加一个labelMap,用于鼠标移上按钮时的提示. //工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的从新定义 , toolbars:[ ['fullscreen', 'source', '|', 'undo', 'redo

ueditor 百度编辑器,自定义右键菜单

如图:有2种自定义方法,一种是改源码,一种是初始化 初始化,如下代码: var ue = UE.getEditor('XXXid',{ // contextMenu:[ {label:'', cmdName:'selectall'}, { label:'', cmdName:'cleardoc', exec:function () { this.execCommand( 'cleardoc' ); } }, {label:'这里添加一个菜单',cmdName:'cleardoc', icon:'

ueditor 百度编辑器 自定义图片上传路径和格式化上传文件名

今天项目中需要自定义图片上传的保存路径,并且不需要按照日期自动创建存储文件夹和文件名,我的ueditor版本是1.3.6.下面记录一下我配置成功的方法,如果有什么不对的地方欢迎指出,共同学习: 1:我在本地项目的根目录下新建一个文件夹,比如:upload. 2:打开ueditor/php/config.php,改成如下代码后保存: <?php return array( //图片上传允许的存储目录 /*'imageSavePath' => array ( 'upload1', 'upload2

ueditor百度编辑器中,多图上传后,图片顺序乱掉的处理方法

上传后,图片的顺序和预期的不一致,需要修改ueditor的源码. 一.找到editor/dialogs/attachment/attachment.js文件 1.将_this.fileList.push(json);修改为_this.fileList[$file.index()] = json; 2.考虑上传失败的情况,加上一个判断,避免在上传失败后,数组中出现undefined项 二.找到editor/dialogs/image/image.js文件 1.将_this.imageList.pu

thinkphp 对百度编辑器里的内容进行保存

模板代码 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>ueditor demo</title> </head> <body> <!-- 加载编辑器的容器 --> <script id="container" name="co

UEditor百度富文本编辑器--让编辑器自适应宽度的解决方案

UEditor百度富文本编辑器的initialFrameWidth属性,默认值是1000. 不能够自适应屏幕宽度.如图1: 刚开始的时候,我是直接设置initialFrameWidth=null的.效果如图2: 这样子UEditor百度富文本编辑器会在第一次加载的时候获取屏幕宽度,然后赋值给initialFrameWidth属性. 这样子确实是可以在第一次加载的时候适应屏幕宽度,但是却似乎宽度稍微过了一点点,超过上面的灰条了.而且这里还有一个问题: 当你改变浏览器大小时,会有个很严重的排版BUG