CKFinder无法上传图片,导致错误无法打开流:权限被拒绝

时间:2016-02-01 08:45:28

标签: php ckfinder

快速问题一直困扰着我好几天了。我刚刚安装了CKfinder和#34;浏览"工作完美。除非我想上传图片或文件,否则会出现以下错误:

  

致命错误:未捕获的异常' 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 /中的图像非常完美。它甚至将名称返回到我的输入字段。

但目前我想上传图片或文件,我收到此错误。有谁能告诉我如何解决这个问题?

P.S。文件夹有CHMOD 777所以应该没问题。似乎错误说它正在尝试上传文件,或者从错误的目录访问它,例如我的设置错了:)

这只是一个测试,但本地资源将被删除,图像/文件浏览应仅来自FTP,与上传目录相同:)

1 个答案:

答案 0 :(得分: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
    )
 );