TP3.2整合kindeditor

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标签转回来
原文地址:https://www.cnblogs.com/3body/p/5416699.html