


yii2 integrates Baidu editor umeditor and umeditor image upload problem solution, yii2umeditor_PHP tutorial
Jul 12, 2016 am 08:53 AMyii2 integrates Baidu editor umeditor and umeditor image upload problem solution, yii2umeditor
Let’s talk about how the Yii2 framework integrates Baidu editor umeditor.
What is umeditor? I have only heard of ueditor. Is your umeditor a pirated copy of Dongdongnan? UEditor, to put it bluntly, is the mini version of UEditor. According to Baidu's official statement, it is actually a "short, soft and small" editor, but with full functions. Ahem, let’s get back to the topic.
First of all, let’s go to the official website to download a mini version of ueditor umeditor. Note that it is um editor.
Download it, unzip it, and put it in the /css directory under the project root directory. Name it umeditor. The specific location is up to you, as long as it can be referenced later.
In the second step, we first extend the backendassetsAppset class. Oops, why do we need to extend such a thing? What does it have to do with integrating it with our umeditor? Cheng Yaojin came out halfway. The purpose of extending this class file here is to facilitate the introduction of css js files into the file.
It’s very simple, just add the following two methods to the Appset method
//定義按需加載JS方法,注意加載順序在最后 public static function addScript($view, $jsfile) { $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'backend\assets\AppAsset']); } //定義按需加載css方法,注意加載順序在最后 public static function addCss($view, $cssfile) { $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'backend\assets\AppAsset']); }
Next, follow the configuration below.
Let me explain first. Here we assume that there is an article table and a content field that needs to be displayed in Baidu Editor.
According to the yii2 form model, we modify the content field in the article_form.php file
<?= $form->field($model, 'content')->textarea(['style' => 'width:760px;height:500px;']) ?>
This file introduces the Appset class and the relevant css js files as follows
use backend\assets\AppAsset; AppAsset::register($this); AppAsset::addCss($this,'/css/umeditor/themes/default/css/umeditor.css'); AppAsset::addScript($this,'/css/umeditor/umeditor.config.js'); AppAsset::addScript($this,'/css/umeditor/umeditor.min.js'); AppAsset::addScript($this,'/css/umeditor/lang/zh-cn/zh-cn.js');
Then you only need to register the following js code at the bottom of the current page to achieve it
<?php $this->beginBlock('js-block') ?> $(function () { var um = UM.getEditor('article-content', { }); }); <?php $this->endBlock() ?> <?php $this->registerJs($this->blocks['js-block'], \yii\web\View::POS_END); ?>
Regarding how article-content comes from, this is the target object we want to bind, that is, content. article-content is the current ID of the object.
ok, now the Baidu editor is basically integrated. Now hurry up and add an article to give it a try. Remember to update to see if there is content in the editor.
The following will introduce to you how yii2 solves the problem of image uploading in Baidu editor umeditor.
The yii2 framework integrates the Baidu editor. Because the file upload uses the UploadedFile that comes with yii2, it is inevitable that the umeditor upload will not be successful. To solve the problem, only two steps are needed. Let’s take a look at the specific implementation
First of all, let’s configure the umeditor. Here we only need to change the imageUrl configuration item. We modify it to point to /tools/um-upload
The next step is to implement the /tools/um-upload method,
According to the implementation of ueditor, here we only need to return success information after the upload is successful
use backend\models\Upload; use yii\web\UploadedFile; /** * 百度umeditor上傳 */ public function actionUmUpload () { $model = new Upload(); if (Yii::$app->request->isPost) { $model->file = UploadedFile::getInstance($model, 'file'); $dir = ‘文件保存目錄'; 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)); } } }
Special reminder: The state in the $info information returned above can only be SUCCESS, which is case-sensitive

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

ToversionaPHP-basedAPIeffectively,useURL-basedversioningforclarityandeaseofrouting,separateversionedcodetoavoidconflicts,deprecateoldversionswithclearcommunication,andconsidercustomheadersonlywhennecessary.StartbyplacingtheversionintheURL(e.g.,/api/v

TosecurelyhandleauthenticationandauthorizationinPHP,followthesesteps:1.Alwayshashpasswordswithpassword_hash()andverifyusingpassword_verify(),usepreparedstatementstopreventSQLinjection,andstoreuserdatain$_SESSIONafterlogin.2.Implementrole-basedaccessc

Proceduralandobject-orientedprogramming(OOP)inPHPdiffersignificantlyinstructure,reusability,anddatahandling.1.Proceduralprogrammingusesfunctionsorganizedsequentially,suitableforsmallscripts.2.OOPorganizescodeintoclassesandobjects,modelingreal-worlden

PHPdoesnothaveabuilt-inWeakMapbutoffersWeakReferenceforsimilarfunctionality.1.WeakReferenceallowsholdingreferenceswithoutpreventinggarbagecollection.2.Itisusefulforcaching,eventlisteners,andmetadatawithoutaffectingobjectlifecycles.3.YoucansimulateaWe

To safely handle file uploads in PHP, the core is to verify file types, rename files, and restrict permissions. 1. Use finfo_file() to check the real MIME type, and only specific types such as image/jpeg are allowed; 2. Use uniqid() to generate random file names and store them in non-Web root directory; 3. Limit file size through php.ini and HTML forms, and set directory permissions to 0755; 4. Use ClamAV to scan malware to enhance security. These steps effectively prevent security vulnerabilities and ensure that the file upload process is safe and reliable.

Yes, PHP can interact with NoSQL databases like MongoDB and Redis through specific extensions or libraries. First, use the MongoDBPHP driver (installed through PECL or Composer) to create client instances and operate databases and collections, supporting insertion, query, aggregation and other operations; second, use the Predis library or phpredis extension to connect to Redis, perform key-value settings and acquisitions, and recommend phpredis for high-performance scenarios, while Predis is convenient for rapid deployment; both are suitable for production environments and are well-documented.

In PHP, the main difference between == and == is the strictness of type checking. ==Type conversion will be performed before comparison, for example, 5=="5" returns true, and ===Request that the value and type are the same before true will be returned, for example, 5==="5" returns false. In usage scenarios, === is more secure and should be used first, and == is only used when type conversion is required.

The methods of using basic mathematical operations in PHP are as follows: 1. Addition signs support integers and floating-point numbers, and can also be used for variables. String numbers will be automatically converted but not recommended to dependencies; 2. Subtraction signs use - signs, variables are the same, and type conversion is also applicable; 3. Multiplication signs use * signs, which are suitable for numbers and similar strings; 4. Division uses / signs, which need to avoid dividing by zero, and note that the result may be floating-point numbers; 5. Taking the modulus signs can be used to judge odd and even numbers, and when processing negative numbers, the remainder signs are consistent with the dividend. The key to using these operators correctly is to ensure that the data types are clear and the boundary situation is handled well.
