使用ThinkPHP上传类处理KindEditor上传的图片




KindEditor作为一款可视化的HTML编辑器用起来确实比较方便,其本身也自带了图片上传的处理
这里修改为TP上传处理图片,是为了保证上传图片的方便(目录独立于编辑器,便于增加水印等处理)




第一步:在模板html页面引入如下文件:


 


<link rel="stylesheet" href="/data/editor/plugins/code/prettify.css" />
<script charset="utf-8" src="/data/editor/kindeditor.js"></script>
<script charset="utf-8" src="/data/editor/lang/zh_CN.js"></script>
<script charset="utf-8" src="/data/editor/plugins/code/prettify.js"></script>
<script>
KindEditor.ready(function(K) {
var editor1 = K.create('textarea[name="content"]', {
cssPath : '/data/editor/plugins/code/prettify.css',
uploadJson : "/Home/Common/upload",//图片上传后的处理地址
});
prettyPrint();
});
</script>
路径根据自己的项目不同,正确引入即可,uploadJson : "/Home/Common/upload",
uploadJson后面的就是编辑器上传图片的处理地址,可以根据自己的自行配置
这里交由Home分组的Common控制器的upload方法处理图片上传


第二步:自定义上传处理函数


 


 


function upload(){
header("Content-Type:text/html;charset=utf-8");
    import('ORG.Net.UploadFile');


    $upload = new UploadFile();
$upload->maxSize  = 3145728;
$upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');

$upload->autoSub=true;
$upload->subType='date';
$upload->dateFormat='Ym';
$upload->savePath =  './upload/article/';

if(!$upload->upload()){
$error['error']=1;
$error['message']=$upload->getErrorMsg();
exit(json_encode($error));
}

$info=$upload->getUploadFileInfo();

/*图片水印处理
import('ORG.Util.Image');
$image = new Image();
$image->water($upload->savePath.$info[0]['savename'],'./data/water.png');*/

$data=array(
'url'=>str_replace('./','/',$upload->savePath).$info[0]['savename'],
'error'=>0
);

exit(json_encode($data));
}
这里使用ThinkPHP的上传类处理图片上传,也可以自己写,唯一需要注意的就是返回的格式


查看了下官方的文档:
上传正确返回这种JSON串
{
    "error" : 0,
    "url" : "http://www.example.com/path/to/file.ext"
}
上传失败返回这种JSON串
{
    "error" : 1,
    "message" : "错误信息"
}


特别需要注意的一点就是返回的error一定要用整数1或是0,别用字符串'1'或'0'
原因是plugins/image/image.js的结果判断是 恒等于 === 
(当初自己就是因为PHP端返回的是字符串形式的'0'不等于整数的0导致上传之后总是弹窗报错)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱写代码的小朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值