php – 如何将CKFinder与Laravel集成?

我正在尝试将CKFinder与Laravel整合在一起,而我在那里的成绩约为95%.我可以让一切工作,除了CheckAuthentication函数 – 我必须使它返回true,无论上传工作.

我尝试做的是在config.php文件中引导Laravel,然后检查用户是否已登录,如下所示:

公共/包/ ckfinder / config.php文件

<?php
/*
 * ### CKFinder : Configuration File - Basic Instructions
 *
 * In a generic usage case, the following tasks must be done to configure
 * CKFinder:
 *     1. Check the $baseUrl and $baseDir variables;
 *     2. If available, paste your license key in the "LicenseKey" setting;
 *     3. Create the CheckAuthentication() function that enables CKFinder for authenticated users;
 *
 * Other settings may be left with their default values, or used to control
 * advanced features of CKFinder.
 */

/** RIPPED FROM public/index.php **/

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/

require __DIR__.'/../../../bootstrap/autoload.php';

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let's turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight these users.
|
*/

$app = require __DIR__.'/../../../bootstrap/start.php';

/** END public/index.php **/

/**
 * This function must check the user session to be sure that he/she is
 * authorized to upload and access files in the File Browser.
 *
 * @return boolean
 */
function CheckAuthentication()
{
    // WARNING : DO NOT simply return "true". By doing so, you are allowing
    // "anyone" to upload and list the files in your server. You must implement
    // some kind of session validation here. Even something very simple as...

    return Auth::check();
}

但是,这总是返回false.我也尝试直接使用Laravel的Session在某人登录时将变量设置为true,在他们注销时将其设置为false,然后在config.php文件中检查该变量,但它始终在Session :: get中返回默认值(“IsAuthorized”,false);;任何人都可以提供一些指导 –

1)如何验证是否允许用户上传?

2)为什么在另一个文件中引导Laravel似乎会导致它使用单独的会话,即使它正在加载相同的文件?

解决方法:

我尝试将simogeo的Filemanager和KCFinder集成到Laravel项目中,我发现了同样的问题.

使用此代码,可以共享Laravel的会话并检查外部项目的身份验证:

https://gist.github.com/frzsombor/ddd0e11f93885060ef35

上一篇:php – CKFinder 3(不适用于CKEditor)在选择或上传图像时,如何强制用户使用特定尺寸的图像编辑区域


下一篇:Python学习笔记之(python数据结构、装饰器及文件操作)