LayUI.upload阻止文件上传
程序员文章站
2022-04-07 21:18:17
...
LayUI 阻断上传
LayUI.upload 时,before方法无论返回什么,都不会阻止文件上传
LayUI的上传组件是不支持before方法阻断上传的.
我在百度上搜到一些解决方案,都是压缩过的代码怎么修改,没有人说源码怎么修改
压缩过的代码修改前
y = function() {
if ("choose" !== t && !l.auto || (l.choose && l.choose(g), "choose" !== t)) return l.before && l.before(g),
a.ie ? a.ie > 9 ? u() : c() : void u()
};
修改后
return "choose" === t ? l.choose && l.choose(g) : ((l.before && l.before(g)) === false ? '' : a.ie ? a.ie > 9 ? u() : c() : void u())
这对于那些使用源码进行调试的新手,依然很不友好!
经过研究,我在这里贴出源码如何修改来支持在before中如何阻止上传.
修改前的send函数
send = function(){
//选择文件的回调
if(type === 'choose' || options.auto){
options.choose && options.choose(args);
if(type === 'choose'){
return;
}
}
//上传前的回调
options.before && options.before(args);
//IE兼容处理
if(device.ie){
return device.ie > 9 ? ajaxSend() : iframeSend();
}
ajaxSend();
}
修改后
send = function () {
if(type === 'choose' || options.auto){
options.choose && options.choose(args);
if(type === 'choose'){
return;
}
}
//上传前的回调
var b2 = options.before&&options.before(args);
if(b2===false){
console.log("before check false, not need upload");
}else{
//IE兼容处理
if (device.ie) {
return device.ie > 9 ? ajaxSend() : iframeSend();
}
ajaxSend();
}
}
下一篇: 第五章 Spring MVC 文件上传