layui文件上传前进行判断,不符合要求阻止上传

提问 未结 1 63
guzhanfang
guzhanfang 2019-11-8
悬赏:20飞吻
版本:layui 浏览器:
在图片文件上传前,想要对图片的尺寸进行判断,不符合要求则阻止上传,但是在choose属性和before属性中返回false,均无法阻止文件上传,求解?
以下是代码
  var uploadInst = upload.render({
elem: '#img'
,url: "creat"
,accept: "images"
,acceptMime: 'image/jpg, image/png'
,data:{
url:function(){
return $('#url').val().trim();
}
}
,before: function(obj){
//预读本地文件示例,不支持ie8
obj.preview(function(index, file, result){
var flag = true;
obj.preview(function(index, file, result){
console.log(file); //file表示文件信息,result表示文件src地址
var img = new Image();
img.src = result;
img.onload = function () { //初始化夹在完成后获取上传图片宽高,判断限制上传图片的大小。
if(img.width ==600 && img.height ==800){
obj.upload(index, file); //满足条件调用上传方法
}else{
flag = false;
layer.msg("您上传的小图大小必须是600*800尺寸!");
return false;
}
}
return flag;
});
$('#backUrl').attr('src', result); //图片base64资源
load = layer.load(1);
});
}
,choose: function(obj){ //上传前选择回调方法
var flag = true;
obj.preview(function(index, file, result){
console.log(file); //file表示文件信息,result表示文件src地址
var img = new Image();
img.src = result;
img.onload = function () { //初始化夹在完成后获取上传图片宽高,判断限制上传图片的大小。
if(img.width ==600 && img.height ==800){
obj.upload(index, file); //满足条件调用上传方法
}else{
flag = false;
layer.msg("您上传的小图大小必须是600*800尺寸!");
return false;
}
}
return flag;
});
}
,done: function(rs){
//如果上传失败

if(!rs.ok){
layer.msg(rs.msg,{icon: 5,time:1000});
}else{
$('#backUrl').attr('src', rs.url);
$("#preview").css("display","block");
$("#previewimg").attr("src",rs.url);
layer.msg(rs.msg,{icon: 6,time:1000});
}
layer.close(load);
//上传成功
}
,error: function(){
layer.close(load);
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){
uploadInst.upload();
});
}
});
回帖