使用ThinkPHP上传类处理KindEditor上传的图片(主要是注意返回格式的方式)
2016-01-04 17:17
791 查看
出处:http://www.cnblogs.com/sheevy/p/4010631.html
KindEditor作为一款可视化的HTML编辑器用起来确实比较方便,其本身也自带了图片上传的处理
这里修改为TP上传处理图片,是为了保证上传图片的方便(目录独立于编辑器,便于增加水印等处理)
第一步:在模板html页面引入如下文件:
[/code]
路径根据自己的项目不同,正确引入即可,uploadJson : "/Home/Common/upload",
uploadJson后面的就是编辑器上传图片的处理地址,可以根据自己的自行配置
这里交由Home分组的Common控制器的upload方法处理图片上传
第二步:自定义上传处理函数
这里使用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导致上传之后总是弹窗报错)
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>
[/code]
路径根据自己的项目不同,正确引入即可,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导致上传之后总是弹窗报错)
相关文章推荐
- PHP 替换WORD模板 实现可直接打印的WORD
- 在编译好的PHP环境中安装PHP扩展模块
- PHPhotoLibrary+Extension
- 关于PhpStorm乱码的解决方法
- 126 php xss攻击原理以及应对
- PHP中$_SERVER的一些参数
- 使用WindowManager.LayoutParams的x和y设置窗体位置
- contentprovider的学习实例总结
- 自定义ContentProvider的一些细节探究
- PHP导出Excel 数字末尾变0或小数点解决办法
- Laravel 学习总结一:前提(路径重写和KEY)
- PHP READ PPT FILE
- Laravel Query Builder Eloquent的where, findOrFail, firstByAttributes等在Phpstorm不提示得解决办法
- PHPUnit 在phpstrom中composer项目的应用配置
- Laravel5.1教程 前言
- php遍历指定路径下的所有文件和文件夹
- 大家须知简单的php性能优化注意点
- How can I capture the audio output with GStreamer?
- Mobile Detect:移动设备(手机和平板)检测的 PHP 类库
- PHP中读取文件的几个方法