修改kindeditor支持预处理文件上传返回的结果

今天要说的这个问题,可能大部分人认为都不是问题。不过,既然遇到了,就记录一下。

设想这样一个场景,系统中有一个接口是用来上传图片的,图片上传成功后会返回结果和最终保存的图片的地址,比如返回结果如下:{status:1,imgUrl:'xxxx'}。用过kindeditor都知道它的返回结果的格式要求是{error:0,url:'xxxx'},如果想重用已有的上传接口,就不得不改写kindeditor。其实改起来也很简单,在源代码kindeditor-all.js中找到如下一段代码:

var uploadbutton = K.uploadbutton({
button : K('.ke-upload-button', div)[0],
fieldName : filePostName,
form : K('.ke-form', div),
target : target,
width: 60,
afterUpload : function(data) {
dialog.hideLoading();
if (data.error === 0) {
var url = data.url;


在if(data.error===0)的前面添加一个你要预处理返回值的逻辑。假设我这里把这个方法叫做parseOfUploadImg,那么我的代码就会是这样:

var uploadbutton = K.uploadbutton({
button : K('.ke-upload-button', div)[0],
fieldName : filePostName,
form : K('.ke-form', div),
target : target,
width: 60,
afterUpload : function(data) {
dialog.hideLoading();
if(self.parseOfUploadImg){
data = self.parseOfUploadImg.call(self,data);
}
if (data.error === 0) {
var url = data.url;

ok,已经改好了,在用的时候只需要在创建富文本框时的options中写上parseOfUploadImg这样一个函数用来预处理返回结果.比如:

{

....

parseOfUploadImg:function(data){

return {error:data.status,url:data.imgUrl};

}


....

}


大功告成:)


发布了55 篇原创文章 · 获赞 39 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/Chinese521/article/details/52329343