【精华分享】layui.upload上传文件或图片在before执行上传前阻止停止上传

搜索了百度,各社区,都没有该解决方案,又查看了layui.upload.js源码,各种尝试后依然无所获,重新看了一遍简短的文档,突然受到了启发,现独家分享给大家:

1)充分了解三个状态:choose,before,done。

choose)表示文件选择后的回调,注意此时并没有加入上传队列;

before)表示文件上传前的回调,注意此时已经加入上传队列;

done)表示文件上传成功的回调;

2)要使用choose,必须设置为auto为false

这一步就是精华所在了,很多人都不会设置auto,而默认值是true自动上传,自动上传就无法阻止不上传了。

所以,必须要设置auto:false,这样就可以配合choose了,在choose,如果不执行obj.upload(index, file)就不会上传了。

3)代码分享

layui.use(['layer', 'upload'], function () {

var upload = layui.upload;

upload.render({

elem: '#divUpload'

, url: '/ashx/upload.ashx'

, multiple: true  //多文件上传

, accept: "file"

, data: { action: 'layupload' }

, auto: false

, choose: function (obj) {

obj.preview(function (index, file, result) {

if ($(".fileName[data-filename='" + file.name.toLowerCase() + "']").length > 0)

alert("文件已存在");

else

obj.upload(index, file);//文件上传

});

}

, before: function (obj) {

alert("文件开始上传,请等待");

}

, done: function (res, index, upload) {

alert("文件上传成功");

}, error: function (a, b) {

alert("文件上传发生错误");

}

});

});

你可能感兴趣的:(【精华分享】layui.upload上传文件或图片在before执行上传前阻止停止上传)