HTML
<!-- KE图片上传 --> <link rel="stylesheet" href="__PUBLIC__/kindeditor/themes/default/default.css" /> <script src="__PUBLIC__/kindeditor/kindeditor-min.js"></script> <script src="__PUBLIC__/kindeditor/lang/zh_CN.js"></script> <script> KindEditor.ready(function(K) { window.editor = K.create('#editor_id',{ items:['source', 'preview','|', 'formatblock','fontsize','forecolor','|','bold','italic','underline','hr','|','link','unlink','|','multiimage','|','clearhtml'], //自定义编辑器的功能按钮 allowFileManager : true, urlType : 'absolute', //将文件上传路径设置为绝对路径,这样下面的uploadJson的路径才正确 uploadJson:"<{:U('Product/upload')}>", //设置文件上传提交的控制器 imageSizeLimit:'1MB', //设置单文件上传大小限制,最好和后台同步 imageUploadLimit:'50', //设置图片上传最大张数,默认为20 extraFileUploadParams: { //自定义提交参数,防止flash上传使用FF导致的session丢失 sid : '<{:session_id()}>', //自定义传入sessionid,username,uid等,POST方式 sname : '<{:session("username")}>', suid : '<{:session("uid")}>' } }); }); </script>//编辑器生成 <td colspan="2"><textarea id="editor_id" name="content" style="1000px;height:400px;"></textarea></td>
PHP
//公共控制器,用来验证是否登录等 class CommonController extends Controller{ public function _initialize(){ //此处为解决Uploadify,kindeditor等flash上传在火狐下上传失败,重新设置SESSION if ($_POST['sid']) { //接收自定义传入的内容,然后手动写入session session_id($_POST['sid']); session_start(); session('username',$_POST['sname']); //手动写入session的username,否则下面的判断通不过,则由于没登录导致上传失败 session('id',$_POST['suid']); } if(!$_SESSION['username']){ $this->redirect('Login/index'); } } }//kindeditor图片上传处理 public function upload(){ $config = array( 'maxSize' => 1000000, //上传文件的最大值 'exts' => array('jpeg','jpg','png','gif'), //允许上传的文件后缀 留空不作后缀检查 'autoSub' => true, // 启用子目录保存文件 'subName' => array('date','Ymd'), // 子目录创建方式 可以使用hash date custom 'rootPath' => './Upload/img/', //保存根路径 'savePath' => '', //上传文件保存路径 ); $upload = new ThinkUpload($config); $info=$upload->upload(); if($info){ $img=__ROOT__.'/Upload/img/'.$info['imgFile']['savepath'].$info['imgFile']['savename']; //组合成正确的路径 echo json_encode(array('error' => 0, 'url' => $img)); //按要求返回对应的参数 }else{ //如果上传失败,则输出错误信息 echo json_encode(array('error' => 1, 'message' =>$upload->getError())); } }
注:kindeditor发布内容,里面的HTML标签会被htmlspecialchars()转码,因此,在取出内容的时候需要使用htmlspecialchars_decode()将HTML标签转回来