欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ckeditor + ckfinder + oss存储

程序员文章站 2022-05-18 09:05:49
ckeditor 与 ckfinder 的整合方法 网上有很多,这里我也就不说了。 (主要是以前整合的现在忘记咋弄的了0.0) 我这里整合后直接使用js代码 主要参数:filebrowserUploadUrl 地址修改了就可以。 我这里是修改成自己上传文件的地址 使用的环境 tp3.2.3的 后台上 ......

ckeditor 与 ckfinder 的整合方法 网上有很多,这里我也就不说了。  (主要是以前整合的现在忘记咋弄的了0.0)

 

我这里整合后直接使用js代码

<script type="text/javascript">
     CKEDITOR.replace('content', {
        filebrowserBrowseUrl: '__SYSTEM__/ckfinder/ckfinder.html',
        filebrowserImageBrowseUrl: '__SYSTEM__/ckfinder/ckfinder.html?type=Images',
        filebrowserFlashBrowseUrl: '__SYSTEM__/ckfinder/ckfinder.html?type=Flash',
        filebrowserUploadUrl: "{:U('Public/uploadCkfinder')}",//默认插件自带的上传地址__SYSTEM__/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
        filebrowserImageUploadUrl: "{:U('Public/uploadCkfinder')}",//默认插件自带的上传地址'__SYSTEM__/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
        filebrowserFlashUploadUrl: "{:U('Public/uploadCkfinder')}",//默认插件自带的上传地址'__SYSTEM__/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash',
     }); 
</script>

 

主要参数:filebrowserUploadUrl 地址修改了就可以。

我这里是修改成自己上传文件的地址 使用的环境 tp3.2.3的

 

后台上传方法:

/**
     * 富文本远程上传
     */
    public function uploadCkfinder(){
        $upload = new \Think\Upload();
        // 实例化上传类
        $upload->maxSize = C('UPLOAD_FIEL_MAX_SIZE');
        // 设置附件上传大小
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');
        // 设置附件上传类型
        $upload->rootPath = './uploads/';
        // 设置附件上传根目录
        $upload->savePath = '';
        // 设置附件上传(子)目录
        // 上传文件
        $info = $upload->upload();
        //取出第一个元素
        $data = current($info);
        if (!$info) {
            // 上传错误提示错误信息
            echo '<script type="text/javascript">
                        window.parent.CKEDITOR.tools.callFunction("1", "", "'.$upload->getError().'");
                    </script>';
        } else {
            //上传成功
            $file = './uploads/'.$data['savepath'].$data['savename'];//文件路径,必须是本地的。
            //上传本地文件到阿里oss
            $ossUpload = $this->aliOssUpload( $file , $data);
            if($ossUpload == '1000'){
//获取完整OSS地址 , 如果相站点下可以只获取 相对地址。 $path['path'] = get_oss_img_crop($data['savepath'].$data['savename'] ); echo '<script type="text/javascript"> window.parent.CKEDITOR.tools.callFunction("1", "'.$path['path'].'", "上传成功!" , "'.$data['savename'].' ");</script>'; exit; } else { echo '<script type="text/javascript"> window.parent.CKEDITOR.tools.callFunction("1", "", "上传失败"); </script>'; exit; } } }

ckeditor + ckfinder + oss存储

 

//这里返回的是 完整地址,返回地址可以自己修改。

ckeditor + ckfinder + oss存储




顺便付上 上传OSS方法
/**
     * 阿里对象存储-文件上传
     * @datatime 2018/1/19 16:20
     * @author lgp
     */
    private function aliOssUpload( $file = '' , $info = array() ){
        if( !$file  || !$info ){
            return '1008';
        }
        // 上传成功
        vendor('aliyun-oss-php-sdk-master.autoload');
        $accessKeyId = C('ALI_OSS_CONFIG.accessKeyId');
        $accessKeySecret = C('ALI_OSS_CONFIG.accessKeySecret');
        $endpoint  =  C('ALI_OSS_CONFIG.endpoint');//你的阿里云OSS地址
        $isCName = C('ALI_OSS_CONFIG.isCName');
        $ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint , $isCName);
        $bucket = C('ALI_OSS_CONFIG.bucket');//oss中的文件上传空间
        $object =  $info['savepath'] .$info['savename'];//想要保存文件的名称
        //$file = './uploads/'.$info['file']['savepath'].$info['file']['savename'];//文件路径,必须是本地的。
        try{
            $result = $ossClient->uploadFile($bucket,$object,$file);
            //上传成功,自己编码
            if($result['status'] == 0){
                if( C('ALI_OSS_CONFIG.unlink_file') == 1){
                    //是否删除本地
                    unlink($file);
                }
                return '1000';
                //$this->apiReturn('1000' , $info['file']['savepath'] . $info['file']['savename'] ); 
            } else {
                //$this->apiReturn('1002'); 
                return '1008';
            }
            
        }catch (Exception $e) {  
            //$this->apiReturn('1002'); 
            return '1008';
        }
    }