ckeditor + ckfinder + oss存储

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; } } }

 

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




顺便付上 上传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';
        }
    }

 



posted @ 2018-03-16 15:18  墨白`Blog  阅读(2560)  评论(0编辑  收藏  举报