ckeditor部分:
在http://ckeditor.com下载最新版本ckeditor,然后将文件包放在项目根目录下。
访问以下地址可以测试,是否安装成功: http://www.example.com/ckeditor/samples/index.htmlz
真正实现的项目中可以删掉samples相关。
ckfinder部分:
1. composer require ckfinder/ckfinder-laravel-package
2. php artisan ckfinder:download
3. php artisan vendor:publish --tag=ckfinder-assets --tag=ckfinder-config
php artisan vendor:publish --tag=ckfinder-views
php artisan vendor:publish --tag=ckfinder
4. 创建上传文件目录,并且修改目录权限:
mkdir -m 777 public/userfiles
5. 修改Middleware
// app/Http/Middleware/EncryptCookies.php namespace App\Http\Middleware; use Illuminate\Cookie\Middleware\EncryptCookies as Middleware; class EncryptCookies extends Middleware { /** * The names of the cookies that should not be encrypted. * * @var array */ protected $except = [ 'ckCsrfToken', // ... ]; }
// app/Http/Middleware/VerifyCsrfToken.php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'ckfinder/*', // ... ]; }
新建Middleware
php artisan make:middleware CustomCKFinderAuth
public function handle(Request $request, Closure $next) { config(['ckfinder.authentication' => function() { return true; }]); return $next($request); }
修改`config/ckfinder.php`
$config['authentication'] = '\App\Http\Middleware\CustomCKFinderAuth';
$config['csrfProtection'] = false;
routes/web.php添加下面两个路由
Route::any('/ckfinder/connector', 'App\Http\Controllers\CKFinderController@requestAction') ->name('ckfinder_connector'); Route::any('/ckfinder/browser', 'App\Http\Controllers\CKFinderController@browserAction') ->name('ckfinder_browser');
把vendor/ckfinder/ckfinder-laravel-package/src/Controller/CKFinderController.php, 复制到App/Http/Controllers下,记得修改namespace。
把vendor/ckfinder/ckfinder-laravel-package/src/CKFinderMiddleware.php
/复制到App/Http/Middleware下,记得修改namespace。
记得修改views/ckfinder中browser.blade.php的title等,改成你自己的信息。
页面调用:
引入ckeditor, introduction_detail为你的页面textarea的name
CKEDITOR.replace('introduction_detail', { language: 'ja', //语言设置 filebrowserBrowseUrl: "{{route('ckfinder_browser')}}", filebrowserUploadUrl: "{{route('ckfinder_connector')}}?command=QuickUpload&type=Files" //参数不能去掉哦 });
ckfinder在views/setup.blade.php中有引用,所以这里不需要再次引用了。