• 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 ThinkUpload();
            // 实例化上传类
            $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 OSSOssClient($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';
            }
        }


  • 相关阅读:
    OpenResty 社区王院生:APISIX 的高性能实践
    【社群话题分享】有哪些程序员专属的“土味情话”?
    第一次亲密接触——二狗子初识 CDN
    又拍云叶靖:OpenResty 在又拍云存储中的应用
    【社群话题分享】程序员中年真这么难?
    Zabbix日常监控之lvs监控
    zabbix日常监控Apache2.4
    Centos7 apache2.4.29(httpd) 安装
    grafana的安装与设置(一)
    zabbix日常监控项java(四又分之一,通用性强)
  • 原文地址:https://www.cnblogs.com/inkwhite/p/8582077.html
Copyright © 2020-2023  润新知