How to Used Ckeditor Using Laravel 10?

17-Apr-2023

.

Admin

How to Used Ckeditor Using Laravel 10?

Hi dev,

We will study a laravel 10 ckeditor image upload example in this tutorial. You can comprehend the concept of Laravel 10's ckeditor picture upload failing. This guide will show you a straightforward example of how to submit an image in Laravel 10's ckeditor. Here, you will discover how to upload images in Laravel 10 using the ckeditor.

Users are able to edit text content in a browser using the web-based, open-source WYSIWYG (What You See Is What You Get) editor CKEditor. With the help of this robust tool, users may format text, add images and other media, and alter HTML code all without having any prior coding experience. Because of its adaptability and usability, CKEditor has grown in popularity among web developers and content producers since its initial release in 2003. It is created in JavaScript and is simple to incorporate into any web application.

In this example, we will create a simple CKEditor instance with an image upload option that saves the image to local storage. We will set up two routes, one for GET and one for POST requests (for image uploads). Once the user selects an image and submits it, the image will be stored in the 'media' folder.

So, let's see below the steps to getting done with image upload in CKEditor laravel.

Step 1: Install Laravel


first of all, we need to get a fresh Laravel version application using the bellow command, So open your terminal OR command prompt and run the bellow command:

composer create-project laravel/laravel example-app

Step 2: Create Route

In this step, we will add three routes with GET and POST method in routes/web.php file. so let's add it.

routes/web.php

<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\CkeditorController;

/*

|--------------------------------------------------------------------------

| Web Routes

|--------------------------------------------------------------------------

|

| Here is where you can register web routes for your application. These

| routes are loaded by the RouteServiceProvider and all of them will

| be assigned to the "web" middleware group. Make something great!

|

*/

Route::get('/', function () {

return view('welcome');

});

Route::get('ckeditor', [CkeditorController::class, 'index']);

Route::post('ckeditor/upload', [CkeditorController::class, 'upload'])->name('ckeditor.upload');

Step 3: Create Controller

In this step, we have to create new controller as CkeditorController with index() and update() methods.

Make sure you have created media folder in your public directory because images will store on that folder.

so let's update follow code:

app/Http/Controllers/CkeditorController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\View\View;

use Illuminate\Http\JsonResponse;

class CkeditorController extends Controller

{

/**

* Write code on Method

*

* @return response()

*/

public function index(): view

{

return view('ckeditor');

}

/**

* Write code on Method

*

* @return response()

*/

public function upload(Request $request) : JsonResponse

{

if ($request->hasFile('upload')) {

$originName = $request->file('upload')->getClientOriginalName();

$fileName = pathinfo($originName, PATHINFO_FILENAME);

$extension = $request->file('upload')->getClientOriginalExtension();

$fileName = $fileName . '_' . time() . '.' . $extension;

$request->file('upload')->move(public_path('media'), $fileName);

$url = asset('media/' . $fileName);

return response()->json(['fileName' => $fileName, 'uploaded'=> 1, 'url' => $url]);

}

}

}

Step 4: Create View File

In Last step, let's create ckeditor.blade.php for display form with CkEditor and put following code:

resources/views/ckeditor.blade.php

<!DOCTYPE html>

<html>

<head>

<title>Laravel Ckeditor Image Upload Example - ItSolutionStuff.com</title>

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">

<style>

.ck-editor__editable_inline {

min-height: 300px;

}

</style>

</head>

<body>

<div class="container">

<h1>How to Used Ckeditor Using Laravel 10? - Nicesnippets.com</h1>

<form>

<div class="form-group">

<strong>Title:</strong>

<input type="text" name="title" class="form-control" placeholder="Title" value="{{ old('title') }}">

</div>

<div class="form-group">

<strong>Slug:</strong>

<input type="text" name="slug" class="form-control" placeholder="Slug" value="{{ old('slug') }}">

</div>

<div class="form-group">

<strong>Body:</strong>

<textarea name="editor" id="editor"></textarea>

</div>

<div class="form-group mt-5">

<button class="btn btn-success" type="submit">Submit</button>

</div>

</form>

</div>

<script src="https://cdn.ckeditor.com/ckeditor5/34.2.0/classic/ckeditor.js"></script>

<script>

ClassicEditor

.create( document.querySelector( '#editor' ),{

ckfinder: {

uploadUrl: '{{route('ckeditor.upload').'?_token='.csrf_token()}}',

}

})

.catch( error => {

} );

</script>

</body>

</html>

Run Laravel App:

All the required steps have been done, now you have to type the given below command and hit enter to run the Laravel app:

php artisan serve

Now, Go to your web browser, type the given URL and view the app output:

http://localhost:8000/ckeditor

Output:

I hope it can help you...

#Laravel 10