废话不多说,首先打开ueditor.all.js
找到下面的这行代码
function initUploadBtn(){
在这个方法里面有一个判断文件格式的,在这个后面应该只有三行代码
// 判断文件格式是否错误
var filename = input.value,
fileext = filename ? filename.substr(filename.lastIndexOf('.')):'';
if (!fileext || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) {
showErrorLoader(me.getLang('simpleupload.exceedTypeError'));
return;
}
去掉这三行代码,如下(这三行代码提交模拟的表单,也就是上传文件)
domUtils.on(iframe, 'load', callback);
form.action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?':'&') + params);
form.submit();
添加 下面的代码
var file = input.files[0];
if (window.FileReader) {
var reader = new FileReader();
reader.readAsDataURL(file);
//监听文件读取结束后事件
var img = new Image();
img.src = reader.result;
img.onload = function() {
if (img.width >750 || img.height > 1200) {
showErrorLoader('商品详情图片上传宽度最大750px高度最大1100px');
form.reset();
domUtils.un(iframe, 'load', callback);
return;
}else{
domUtils.on(iframe, 'load', callback);
form.action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?':'&') + params);
form.submit();
}
};
}
上面代码添加你会发现一个有趣的现象就是在onload上面打了断点才可以进入onload里面。
原因你们自己研究吧!
修改后代码
var file = input.files[0];
if (window.FileReader) {
var reader = new FileReader();
reader.onload = (function (file) {
return function (e) {
console.info(this.result); //这个就是base64的数据了
var img = new Image();
img.src=this.result;
img.onload = function (argument) {
console.log(this.width +'----------'+this.height) //这里就是上传图片的宽和高了
if (this.width >1000 || this.height > 5600) {
showErrorLoader('详情图片上传宽度小于100px,或者图片过长');
form.reset();
domUtils.un(iframe, 'load', callback);
return;
}else{
domUtils.on(iframe, 'load', callback);
form.action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?':'&') + params);
form.submit();
}
}
};
})(file);
reader.readAsDataURL(file);
}else{
console.log("cccccccc");
}
});