首页 > 解决方案 > CKFinder - 在服务器上上传文件时找不到文件夹

问题描述

我正在尝试在我的 Codeigniter 项目中将 CKFinder(v.3) 与 CKEditor(v.4) 集成,但是当我尝试将文件上传到服务器时出现错误“找不到文件夹”。我用谷歌搜索了这个问题并尝试了以下各种解决方案,但没有一个奏效:

1) 将所有用户的 ckfinder 文件夹权限更改为 FULL

2) 将所有用户的 data-content/page_assets 文件夹的权限更改为 FULL

3)在config.php中设置baseURL路径为“ http://localhost:8080/project/cms/js/ckfinder/userfiles/

以下是我的视图文件中的编辑器设置

// filebrowserBrowseUrl & filebrowserUploadUrl will be different for each module but the base will
// same 'data-content'
CKEDITOR.replace( 'page_content', {
    filebrowserBrowseUrl: '<?php echo base_url()?>js/ckfinder/ckfinder.html?Type=Images&rlf=0&start=Images:/project/data-content/page_assets/',
    filebrowserUploadUrl: '<?php echo base_url()?>js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images&currentFolder=/project/data-content/page_assets/',
    filebrowserWindowWidth: '1000',
    filebrowserWindowHeight: '700'
});

下面是 CKFinder 中的 config.php。仅列出我在此文件中更改的内容

$config['authentication'] = function () {
    return true;
};

$config['backends'][] = array(
    'name'         => 'default',
    'adapter'      => 'local',
    //'baseUrl'      => '/ckfinder/userfiles/',
    'baseUrl'      => 'http://localhost:8080/project/cms/js/ckfinder/userfiles/',
//  'root'         => '', // Can be used to explicitly set the CKFinder user files directory.
    'chmodFiles'   => 0777,
    'chmodFolders' => 0755,
    'filesystemEncoding' => 'UTF-8',
);

$config['overwriteOnUpload'] = false;
$config['checkDoubleExtension'] = true;
$config['disallowUnsafeCharacters'] = true;
$config['secureImageUploads'] = true;
$config['checkSizeAfterScaling'] = true;
$config['htmlExtensions'] = array('html', 'htm', 'xml', 'js');
$config['hideFolders'] = array('.*', 'CVS', '__thumbs');
$config['hideFiles'] = array('.*');
$config['forceAscii'] = false;
$config['xSendfile'] = false;

// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_debug
$config['debug'] = true;

详细错误,调试后

Fatal error:  Uncaught CKSource\CKFinder\Exception\FolderNotFoundException: Folder not found in C:\xampp\htdocs\project\cms\js\ckfinder\core\connector\php\vendor\cksource\ckfinder\src\CKSource\CKFinder\Filesystem\Folder\WorkingFolder.php:144

这些是来自 WorkingFolder.php 文件的相关代码块


// Check if resource type folder exists - if not then create it
$currentCommand = (string) $request->query->get('command');
$omitForCommands = array('Thumbnail');

// DEBUGGING the value of EACH PROPERTY
// clientCurrentFolder => /noveltech/data-content/page_assets/
// $currentCommand => QuickUpload
// $resourceTypeDirectory => images
// $this->path => images/noveltech/data-content/page_assets/ 

if (!in_array($currentCommand, $omitForCommands) && !empty($resourceTypeDirectory) && !$backend->hasDirectory($this->path))
{
   if ($this->clientCurrentFolder === '/') {
       @$backend->createDir($resourceTypeDirectory);

       if (!$backend->hasDirectory($resourceTypeDirectory))
       {
           throw new AccessDeniedException("Couldn't create resource type directory. Please check permissions.");
        }
   }
   else {
     throw new FolderNotFoundException(); // THIS IS LINE NO. 144
   }
}

我的开发环境是 XAMPP。

有人可以帮我集成CKFinder吗?

非常问候,

贾维德

标签: phpckeditorckfinder

解决方案


推荐阅读