Как исправить CKeditor, у которого нет функции загрузки изображения в проекте laravel - PullRequest
0 голосов
/ 20 июня 2020

Мой ckeditor не имеет функции загрузки изображений. Я бы хотел, чтобы эта функция была доступна. Как можно обойти это в laravel?

1 Ответ

1 голос
/ 20 июня 2020

Вы можете использовать CKFinder, что позволяет легко загружать и управлять несколькими файлами. С помощью встроенного редактора изображений доступны обрезка, изменение размера, поворот, регулировка яркости, контрастности, насыщенности, экспозиции и резкости, а также некоторые предустановленные предустановки фильтров.

<script>
    CKEDITOR.replace( 'editor1', {
        filebrowserBrowseUrl: '/ckfinder/ckfinder.html',
        filebrowserUploadUrl: '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files'
    } );

    $('.textarea').wysihtml5();

</script>

Документация Здесь

Для laravel:

CKEDITOR.replace('editor1', {
    filebrowserUploadUrl: "{{ route('ckeditor.upload', ['_token' => csrf_token() ])}}",
    filebrowserUploadMethod: 'form'
});

В вашем маршруте:

Route::post('images/upload', 'ImageController@upload')->name('ckeditor.upload');

И ваш ImageController:

public function upload(Request $request)
 {
     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('images'), $fileName);
   
         $CKEditorFuncNum = $request->input('CKEditorFuncNum');
         $url = asset('images/'.$fileName); 
         $msg = 'Image uploaded successfully'; 
         $response = "<script>window.parent.CKEDITOR.tools.callFunction($CKEditorFuncNum, '$url', '$msg')</script>";
               
         @header('Content-type: text/html; charset=utf-8'); 
         echo $response;
     }
}

Ура !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...