ThinkPHP3.1.3 整合 UEditor百度编辑器 图片上传
第一步、前端模板实例化百度编辑器
<js file='__ROOT__/Data/UEditor/ueditor.config.js' /> <js file='__ROOT__/Data/UEditor/ueditor.all.min.js' /> <js file='__ROOT__/Data/UEditor/lang/zh-cn/zh-cn.js' /> <script type="text/javascript"> window.UEDITOR_HOME_URL = '__ROOT__/Data/UEditor/'; // 添加编辑器实例所在的路径 window.onload = function(){ window.UEDITOR_CONFIG.initialFrameWidth = 1000; // 设置编辑器宽度 window.UEDITOR_CONFIG.initialFrameHeight = 600; // 设置编辑器高度 window.UEDITOR_CONFIG.serverUrl = "{:U(GROUP_NAME . '/Blog/upload')}"; // 服务器统一请求接口路径 UE.getEditor('container'); // 实例化编辑器,container是要实例化的网页元素id } </script>
第二步、后台Tp处理图片上传
// 编辑器图片上传处理 public function upload(){ // 修正UE后台配置文件config.json的路径 $config = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("./Data/UEditor/php/config.json")), true); $action = $_GET['action']; switch ($action) { case 'config': $result = json_encode($config); break; case 'uploadimage': case 'uploadscrawl': case 'uploadvideo': case 'uploadfile': // 调用ThinkPHP的UploadFile类 import('ORG.Net.UploadFile'); $upload = new UploadFile($config); $upload->autoSub = true; // 启用子目录存储 $upload->subType = 'date'; // 子目录存储名为日期 $upload->dateFormat = 'Ym'; // 日期格式:Ym,如:201701 if($upload->upload('./Uploads/')){ $info = $upload->getUploadFileInfo(); // 图片加水印 // import('Class.Image', APP_PATH); // Image::water('./Uploads/' . $info[0]['savename'], './Data/logo.png'); // 编辑返回数据格式(参考UE源码文件夹下/php/action_upload.php文件) echo json_encode(array( 'state' => 'SUCCESS', // 上传状态,上传成功时必须返回"SUCCESS" 'url' => __ROOT__ . '/Uploads/' . $info[0]['savename'], // 返回的地址 'title' => $info[0]['name'] , // 新文件名 'original' => $info[0]['name'], // 原文件名 'type' => $info[0]['type'], // 文件类型 'size' => $info[0]['size'] //文件大小 )); }else{ echo json_encode(array('state'=>$upload->getErrorMsg())); } break; default: $result = json_encode(array('state' => '请求地址出错')); break; } /* 输出结果 */ if (isset($_GET["callback"])) { if (preg_match("/^[\w_]+$/", $_GET["callback"])) { echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')'; }else { echo json_encode(array('state' => 'callback参数不合法')); } }else { echo $result; } }