是否有动态更改CKFinder的baseUrl?
我需要使用这种路径:/websitebuilder/www/user_images/$id/
。我使用谷歌找到了一些答案,但我没有设法让它有效。
有人可以给我任何提示我应该怎么做?
我知道在config.php中你改变了 baseUrl param,但是如何使它成为恐怖的?
答案 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
);