CKFinder не может загрузить изображения, из-за ошибки не удалось открыть поток: в доступе отказано

быстрый вопрос, который беспокоил меня уже несколько дней. Я только что установил CKfinder и «просмотр» работает отлично. За исключением случаев, когда я хочу загрузить изображение или файл, выдается следующая ошибка:

Неустранимая ошибка: необработанное исключение ErrorException с сообщением
‘fopen (/home/xxx/app/userfiles/images/sdfdsf.jpg): не удалось открыть
поток: в доступе отказано
/home/xxx/app/webroot/js/packages/finder/core/connector/php/vendor/league/flysystem/src/Adapter/Local.php:142

Я использовал следующие настройки:

$config['backends'][] = array(
'name'         => 'default',
'adapter'      => 'local',
'baseUrl'      => '/app/userfiles/',
'chmodFiles'   => 0777,
'chmodFolders' => 0755,
'filesystemEncoding' => 'UTF-8',
);

$config['backends'][] = array(
'name'         => 'ftp',
'adapter'      => 'ftp',
'host'         => 'xxx',
'username'     => 'xxx',
'password'     => 'xxx'
);

$config['resourceTypes'] = array(
array(
'name'              => 'Files',
'directory'         => '/home/websites/www/shared/images/ckfinder/',
'maxSize'           => 0,
'allowedExtensions' => 'pdf,doc,zip',
'backend'           => 'ftp',
'lazyLoad'          => true
),
array(
'name'              => 'Images',
'directory'         => '/home/websites/www/shared/images/ckfinder/',
'maxSize'           => 0,
'allowedExtensions' => 'gif,jpeg,jpg,png',
'backend'           => 'ftp',
'lazyLoad'          => true
)
);

Как уже говорилось, просмотр изображений, которые находятся в / app / userfiles /, работает отлично. Он даже возвращает имя в мое поле ввода.

Но в данный момент я хочу загрузить изображение или файл, я получаю эту ошибку. Кто-нибудь, кто может сказать мне, как решить эту проблему?

Постскриптум Папки имеют CHMOD 777, так что должно быть в порядке. Кажется, что ошибка говорит о том, что он пытается загрузить файл или получить доступ к нему из неправильного каталога, например мои настройки неверны 🙂

Это был всего лишь тест, но локальный ресурс будет удален, просмотр изображений / файлов должен осуществляться только с FTP, так же, как и каталог загрузки 🙂

0

Решение

Похоже, вы пытались определить абсолютные пути для типов ресурсов. Путь, используемый в directory Опция типа ресурса должна быть относительно root используемого бэкэнда.

Пожалуйста, обратите внимание на следующие места в документации по коннектору PHP:

Вы можете использовать абсолютный путь, чтобы определить бэкэнд root, а затем использовать пути относительно определенного корня в типах ресурсов directory опции. Например:

$config['backends'][] = array(
'name'         => 'ftp',
'adapter'      => 'ftp',
'host'         => 'xxx',
'username'     => 'xxx',
'password'     => 'xxx',
'root'         => '/home/websites/www/shared/images/ckfinder/'
);

$config['resourceTypes'] = array(
array(
'name'              => 'Images',
//'directory'         => '', You can also omit this option - the resource type in this case will be attached to the backend root
'maxSize'           => 0,
'allowedExtensions' => 'gif,jpeg,jpg,png',
'backend'           => 'ftp',
'lazyLoad'          => true
)
);
0

Другие решения

Других решений пока нет …