【发布时间】:2014-02-14 13:30:15
【问题描述】:
我正在尝试将 ckfinder 与 ckeditor 集成。一切都很好,除了一个。当我尝试上传图片时,出现此错误(请检查图片)
它说 "出于安全原因,文件浏览器已禁用。请联系您的系统管理员并检查 CKFinder 配置文件"
谁能帮帮我?请。
【问题讨论】:
-
有时重新登录会解决问题,如果您之前没有看到此错误,请先检查。
标签: php jquery ckeditor ckfinder
我正在尝试将 ckfinder 与 ckeditor 集成。一切都很好,除了一个。当我尝试上传图片时,出现此错误(请检查图片)
它说 "出于安全原因,文件浏览器已禁用。请联系您的系统管理员并检查 CKFinder 配置文件"
谁能帮帮我?请。
【问题讨论】:
标签: php jquery ckeditor ckfinder
查看ckFinder config文件,你会看到这样的函数:
function CheckAuthentication()
{
return false;
}
默认情况下CheckAuthentication() 出于安全原因禁用它,因为它允许任何人将文件上传到您的服务器。
出于测试目的,您可以返回true,但关键是您实现了一些逻辑来仅授权经过身份验证的用户。
function CheckAuthentication()
{
//put some logic here
return isset($_SESSION['IsAuthorized']) && $_SESSION['IsAuthorized'];
}
【讨论】:
一个简单的解决方案是使用配置文件中的以下代码,使用始终返回 true 的函数来强制使用身份验证方法。
您的脚本(用于 codeigniter):
if(login()){
set_cookie('ckf_role','admin',2592000*10); // 10 month
}
顶部:
$config['authentication'] = function() {
return true;
};
中间:
session_start();
$config['roleSessionVar'] = 'CKFinder_UserRole';
$_SESSION['CKFinder_UserRole'] = !empty($_COOKIE['ckf_role']) ? strtolower($_COOKIE['ckf_role']) : "guest";
$config['accessControl'][] = array(
'role' => 'guest',
'resourceType' => '*',
'folder' => '/',
'FOLDER_VIEW' => false,
'FOLDER_CREATE' => false,
'FOLDER_RENAME' => false,
'FOLDER_DELETE' => false,
'FILE_VIEW' => false,
'FILE_UPLOAD' => false,
'FILE_RENAME' => false,
'FILE_DELETE' => false,
'IMAGE_RESIZE' => false,
'IMAGE_RESIZE_CUSTOM' => false
);
$config['accessControl'][] = array(
'role' => 'admin',
'resourceType' => '*',
'folder' => '/',
'FOLDER_VIEW' => true,
'FOLDER_CREATE' => true,
'FOLDER_RENAME' => true,
'FOLDER_DELETE' => true,
'FILE_VIEW' => true,
'FILE_UPLOAD' => true,
'FILE_RENAME' => true,
'FILE_DELETE' => true,
'IMAGE_RESIZE' => true,
'IMAGE_RESIZE_CUSTOM' => true
);
【讨论】: