图片上传
ueditor的图片、文件等上传采用的是统一的url和不同的请求参数值。 如果和现有的文件上传系统对接,需要改变ueditor的文件上传和返回的处理逻辑。
- 修改ueditor.config.js
, serverUrl: '/qyhmanager/file/upload/single'
, imageUrl: "/qyhmanager/file/upload/single"
, imageUrlPrefix: ""
, imageFieldName: "file"
, imageActionName: "uploadFile"
- 修改ueditor.all.js
修改getActionUrl方法,对图片上传action的判断,返回图片上传的url
getActionUrl: function (action) {
var actionName = this.getOpt(action) || action,
imageUrl = this.getOpt('imageUrl'),
serverUrl = this.getOpt('serverUrl');
if (action == "uploadimage") {
return imageUrl;
}
if (!serverUrl && imageUrl) {
serverUrl = imageUrl.replace(/^(.*[\/]).+([\.].+)$/, '$1controller$2');
}
if (serverUrl) {
serverUrl = serverUrl + (serverUrl.indexOf('?') == -1 ? '?' : '&') + 'action=' + (actionName || '');
return utils.formatUrl(serverUrl);
} else {
return '';
}
}
修改响应结果,增加文件上传结果和ueditor支持结果的转换
function callback() {
try {
var link, json, loader,
body = (iframe.contentDocument || iframe.contentWindow.document).body,
result = body.innerText || body.textContent || '';
json = (new Function("return " + result))();
console.log('json', json)
json = changeDataToJson(json)
console.log('json', json)
link = me.options.imageUrlPrefix + json.url;
if (json.state == 'SUCCESS' && json.url) {
loader = me.document.getElementById(loadingId);
loader.setAttribute('src', link);
loader.setAttribute('_src', link);
loader.setAttribute('title', json.title || '');
loader.setAttribute('alt', json.original || '');
loader.removeAttribute('id');
domUtils.removeClasses(loader, 'loadingclass');
console.log('loader', loader)
} else {
showErrorLoader && showErrorLoader(json.state);
}
} catch (er) {
showErrorLoader && showErrorLoader(me.getLang('simpleupload.loadError'));
}
form.reset();
domUtils.un(iframe, 'load', callback);
}
function changeDataToJson(json) {
var object = {
"original": '', "size": '',
"state": '', "title": '', "type": '',
"url": ''
};
var _json = json;
if (json.status == 2000) {
object.state = 'SUCCESS'
object.url = json.result.file_url
}
return object;
}
ueditor常见问题
- 工具栏中的下拉框展示不出来
z-index设置的值小于页面中其它部分的值,被遮住了。
修改工具栏z-index的基础值。
修改ueditor.config.js中的zIndex属性值