UEditor百度编辑器粘贴本地图片上传并回显,我爱模板网的暴力解决方案,但可行:
修改ueditor.all.js:
1、找到粘贴上传的地方,
搜索:
me.execCommand('inserthtml', loadingHtml)
大约24935行,将下面的代码注释:
if (!me.getOpt(filetype + 'ActionName')) { //errorHandler(me.getLang('autoupload.errorLoadConfig')); return; }
2、修改上传地址
搜索:
url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params);
替换成:
url = 你的上传地址
3、修改上传参数:
将下面的:
fd.append(fieldName, file, file.name || ('blob.' + file.type.substr('image/'.length))); fd.append('type', 'ajax');
按需求改成你的参数,如:
fd.append("file", file , file.name || ('blob.' + file.type.substr('image/'.length)));
4、修改请求头:
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
按需求改成:
let token = localStorage.getItem('TOKEN') if (token) { if(token) { token = JSON.parse(token).content } xhr.setRequestHeader('Authorization', token) } else { xhr.setRequestHeader('Authorization', 'Basic dnVlOnZ1ZQ==') }
5、修改上传成功后的返回:
xhr.addEventListener('load', function (e) { try{ var json = (new Function("return " + utils.trim(e.target.response)))(); console.log(json) if (json.state == 'SUCCESS' && json.url) { successHandler(json); } else { errorHandler(json.state); } }catch(er){ errorHandler(me.getLang('autoupload.loadError')); } });
修改为
xhr.addEventListener('load', function (e) { try{ var json = (new Function("return " + utils.trim(e.target.response)))(); if (json.status === 200 && json.data) { successHandler(json); } else { errorHandler(json.message); } }catch(er){ errorHandler(me.getLang('autoupload.loadError')); } });
同时修改successHandler,一共两处,否则图片无法回显。其实修改不难,主要是找了半天。