CKFinder3动态更改文件夹路径

时间:2018-03-22 15:11:52

标签: php ckeditor ckfinder

是否有动态更改CKFinder的baseUrl?

我需要使用这种路径:/websitebuilder/www/user_images/$id/。我使用谷歌找到了一些答案,但我没有设法让它有效。

有人可以给我任何提示我应该怎么做?

我知道在config.php中你改变了 baseUrl param,但是如何使它成为恐怖的?

2 个答案:

答案 0 :(得分:1)

1 创建新的中间件:

php artisan make:middleware DynamicCkfinderConfig

在handel函数中使用此代码: 不要忘记在文件顶部“使用身份验证”;

public function handle(Request $request, Closure $next)
{
    if (auth()->check()) {

            config([
                'ckfinder.backends.default' => [
                    'name' => 'default',
                    'adapter' => 'local',
                    'baseUrl' => '/user-' . md5(Auth::user()->id) . '/',
                    'root' => public_path('/user-' . md5(Auth::user()->id) . '/'),
                    'chmodFiles' => 0777,
                    'chmodFolders' => 0755,
                    'filesystemEncoding' => 'UTF-8'
                ]
            ]);
        
    }
    return $next($request);
}

2 在kernel.php文件中添加中间件

protected $routeMiddleware = [
        'ckfinderConfig' => \App\Http\Middleware\DynamicCkfinderConfig::class,
    ];

3 在ckfinder连接器路由中使用中间件

Route::any('/ckfinder/connector', [CKFinderController::class, 'requestAction'])
    ->name('ckfinder_connector')->middleware(['ckfinderConfig']);

答案 1 :(得分:0)

您好,您可以使用different folder per instance CKFinder 3 HOWTO的示例。

基本上,您应该将config.php更新为以下内容:

$id = getID();

$config['backends'][] = array(
    'name'    => 'default',
    'adapter' => 'local',
    'baseUrl' => 'http://example.com/ckfinder/userfiles/' . $id,
    'root'    => '/path/to/ckfinder/userfiles/' . $id
);