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