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="width: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 \Think\Upload($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标签转回来