首页 > 代码库 > thinphp 整合ueditor
thinphp 整合ueditor
我的ueditor是部署在public/editor
部署前台页面
<script type="text/javascript" >var UEDITOR_HOME_URL: "__PUBLIC__/ueditor/"</script><script id="container" name="$des" type="text/plain"> 这里写你的初始化内容 </script> <!-- 配置文件 --> <script type="text/javascript" src="http://www.mamicode.com/__PUBLIC__/ueditor/ueditor.config.js"></script> <!-- 编辑器源码文件 --> <script type="text/javascript" src="http://www.mamicode.com/__PUBLIC__/ueditor/ueditor.all.js"></script> <!-- 实例化编辑器 --> <script type="text/javascript"> var ue = UE.getEditor(‘container‘,{ autoHeight: false, }); </script>
修改上传配置信息
ueditor所有上传文件的配置都在config.json文件中。
上传路径修改成自己需要的
更改服务器统一入口文件
修改ueditor.config.js文件
统一入口都走public模块的editor 方法。
1 // 服务器统一请求接口路径2 , serverUrl: "http://localhost/index.php?m=Public&a=editor"
开发一个public 公共的模块
代码我就直接用的ueditor提供的demo。
1 public function getConf(){ 2 $CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("public/ueditor/config.json")), true); 3 return $CONFIG; 4 } 5 public function verify(){ 6 import(‘ORG.Util.Image‘); 7 Image::buildImageVerify(); 8 } 9 public function upload(){ 10 import(‘ORG.Net.UploadFile‘); 11 $upload = new UploadFile();// 实例化上传类 12 $upload->maxSize = 1024*1024 ;// 设置附件上传大小 13 $upload->thumb=true; 14 $upload->thumbMaxWidth=‘150,100‘; 15 $upload->thumbMaxHeight=‘150,50‘; 16 $upload->thumbPrefix="mid_,small_"; 17 $upload->autoSub=true; 18 $upload->subType=date; 19 $upload->dateFormat=‘Ymd‘; 20 $upload->allowExts = array(‘jpg‘, ‘gif‘, ‘png‘, ‘jpeg‘);// 设置附件上传类型 21 $upload->savePath = ‘./Public/Uploads/‘;// 设置附件上传目录 22 if(!$upload->upload()) {// 上传错误提示错误信息 23 $this->error($upload->getErrorMsg()); 24 }else{// 上传成功 获取上传文件信息 25 $info = $upload->getUploadFileInfo(); 26 return $info; 27 } 28 } 29 30 public function action_list(){ 31 $CONFIG=$this->getConf(); 32 /* 判断类型 */ 33 switch ($_GET[‘action‘]) { 34 /* 列出文件 */ 35 case ‘listfile‘: 36 $allowFiles = $CONFIG[‘fileManagerAllowFiles‘]; 37 $listSize = $CONFIG[‘fileManagerListSize‘]; 38 $path = $CONFIG[‘fileManagerListPath‘]; 39 break; 40 /* 列出图片 */ 41 case ‘listimage‘: 42 default: 43 $allowFiles = $CONFIG[‘imageManagerAllowFiles‘]; 44 $listSize = $CONFIG[‘imageManagerListSize‘]; 45 $path = $CONFIG[‘imageManagerListPath‘]; 46 } 47 $allowFiles = substr(str_replace(".", "|", join("", $allowFiles)), 1); 48 49 /* 获取参数 */ 50 $size = isset($_GET[‘size‘]) ? htmlspecialchars($_GET[‘size‘]) : $listSize; 51 $start = isset($_GET[‘start‘]) ? htmlspecialchars($_GET[‘start‘]) : 0; 52 $end = $start + $size; 53 54 /* 获取文件列表 */ 55 $path = $_SERVER[‘DOCUMENT_ROOT‘] . (substr($path, 0, 1) == "/" ? "":"/") . $path; 56 $files = getfiles($path, $allowFiles); 57 if (!count($files)) { 58 return json_encode(array( 59 "state" => "no match file", 60 "list" => array(), 61 "start" => $start, 62 "total" => count($files) 63 )); 64 } 65 66 /* 获取指定范围的列表 */ 67 $len = count($files); 68 for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--){ 69 $list[] = $files[$i]; 70 } 71 //倒序 72 //for ($i = $end, $list = array(); $i < $len && $i < $end; $i++){ 73 // $list[] = $files[$i]; 74 //} 75 76 /* 返回数据 */ 77 $result = json_encode(array( 78 "state" => "SUCCESS", 79 "list" => $list, 80 "start" => $start, 81 "total" => count($files) 82 )); 83 84 return $result; 85 86 } 87 public function action_upload(){ 88 import(‘ORG.Net.Uploader‘); 89 $CONFIG=$this->getConf(); 90 /* 上传配置 */ 91 $base64 = "upload"; 92 switch (htmlspecialchars($_GET[‘action‘])) { 93 case ‘uploadimage‘: 94 $config = array( 95 "pathFormat" => $CONFIG[‘imagePathFormat‘], 96 "maxSize" => $CONFIG[‘imageMaxSize‘], 97 "allowFiles" => $CONFIG[‘imageAllowFiles‘] 98 ); 99 $fieldName = $CONFIG[‘imageFieldName‘];100 break;101 case ‘uploadscrawl‘:102 $config = array(103 "pathFormat" => $CONFIG[‘scrawlPathFormat‘],104 "maxSize" => $CONFIG[‘scrawlMaxSize‘],105 "allowFiles" => $CONFIG[‘scrawlAllowFiles‘],106 "oriName" => "scrawl.png"107 );108 $fieldName = $CONFIG[‘scrawlFieldName‘];109 $base64 = "base64";110 break;111 case ‘uploadvideo‘:112 $config = array(113 "pathFormat" => $CONFIG[‘videoPathFormat‘],114 "maxSize" => $CONFIG[‘videoMaxSize‘],115 "allowFiles" => $CONFIG[‘videoAllowFiles‘]116 );117 $fieldName = $CONFIG[‘videoFieldName‘];118 break;119 case ‘uploadfile‘:120 default:121 $config = array(122 "pathFormat" => $CONFIG[‘filePathFormat‘],123 "maxSize" => $CONFIG[‘fileMaxSize‘],124 "allowFiles" => $CONFIG[‘fileAllowFiles‘]125 );126 $fieldName = $CONFIG[‘fileFieldName‘];127 break;128 }129 130 /* 生成上传实例对象并完成上传 */131 $up = new Uploader($fieldName, $config, $base64);132 133 /**134 * 得到上传文件所对应的各个参数,数组结构135 * array(136 * "state" => "", //上传状态,上传成功时必须返回"SUCCESS"137 * "url" => "", //返回的地址138 * "title" => "", //新文件名139 * "original" => "", //原始文件名140 * "type" => "" //文件类型141 * "size" => "", //文件大小142 * )143 */144 145 /* 返回数据 */146 return json_encode($up->getFileInfo());147 148 }149 /**150 * 编辑器151 */152 public function editor(){153 $CONFIG = $this->getConf();154 $action = $_GET[‘action‘];155 156 switch ($action) {157 case ‘config‘:158 $result = json_encode($CONFIG);159 break;160 161 /* 上传图片 */162 case ‘uploadimage‘:163 /* 上传涂鸦 */164 case ‘uploadscrawl‘:165 /* 上传视频 */166 case ‘uploadvideo‘:167 /* 上传文件 */168 case ‘uploadfile‘:169 $result = $this->action_upload();170 break;171 172 /* 列出图片 */173 case ‘listimage‘:174 $result =$this-> action_list();175 break;176 /* 列出文件 */177 case ‘listfile‘:178 $result = $this-> action_list();179 break;180 181 /* 抓取远程文件 */182 case ‘catchimage‘:183 $result = $this-> action_crawler();184 break;185 186 default:187 $result = json_encode(array(188 ‘state‘=> ‘请求地址出错‘189 ));190 break;191 }192 193 /* 输出结果 */194 if (isset($_GET["callback"])) {195 if (preg_match("/^[\w_]+$/", $_GET["callback"])) {196 //echo htmlspecialchars($_GET["callback"]) . ‘(‘ . $result . ‘)‘;197 //echo ($_GET["callback"]) . ‘(‘ . $result . ‘)‘;198 die(($_GET["callback"]) . ‘(‘ . $result . ‘)‘);199 } else {200 echo json_encode(array(201 ‘state‘=> ‘callback参数不合法‘202 ));203 }204 } else {205 echo $result;206 }207 }208 /**209 * 上传抓图210 */211 public function action_crawler(){212 import(‘ORG.Net.Uploader‘);213 $CONFIG=$this->getConf();214 /* 上传配置 */215 $config = array(216 "pathFormat" => $CONFIG[‘catcherPathFormat‘],217 "maxSize" => $CONFIG[‘catcherMaxSize‘],218 "allowFiles" => $CONFIG[‘catcherAllowFiles‘],219 "oriName" => "remote.png"220 );221 $fieldName = $CONFIG[‘catcherFieldName‘];222 223 /* 抓取远程图片 */224 $list = array();225 if (isset($_POST[$fieldName])) {226 $source = $_POST[$fieldName];227 } else {228 $source = $_GET[$fieldName];229 }230 foreach ($source as $imgUrl) {231 $item = new Uploader($imgUrl, $config, "remote");232 $info = $item->getFileInfo();233 array_push($list, array(234 "state" => $info["state"],235 "url" => $info["url"],236 "size" => $info["size"],237 "title" => htmlspecialchars($info["title"]),238 "original" => htmlspecialchars($info["original"]),239 "source" => htmlspecialchars($imgUrl)240 ));241 }242 243 /* 返回抓取数据 */244 return json_encode(array(245 ‘state‘=> count($list) ? ‘SUCCESS‘:‘ERROR‘,246 ‘list‘=> $list247 ));248 }
控制器接收数据
要使用htmlspecialchars_decode把一些预定义的 HTML 实体转换为字符
1 $data[‘des‘]=htmlspecialchars_decode($this->_post(‘des‘));
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。