搜索了百度,各社區(qū),都沒(méi)有該解決方案,又查看了layui.upload.js源碼,各種嘗試后依然無(wú)所獲,重新看了一遍簡(jiǎn)短的文檔,突然受到了啟發(fā),現(xiàn)獨(dú)家分享給大家:
1)充分了解三個(gè)狀態(tài):choose,before,done。
choose)表示文件選擇后的回調(diào),注意此時(shí)并沒(méi)有加入上傳隊(duì)列;
before)表示文件上傳前的回調(diào),注意此時(shí)已經(jīng)加入上傳隊(duì)列;
done)表示文件上傳成功的回調(diào);
2)要使用choose,必須設(shè)置為auto為false
這一步就是精華所在了,很多人都不會(huì)設(shè)置auto,而默認(rèn)值是true自動(dòng)上傳,自動(dòng)上傳就無(wú)法阻止不上傳了。
所以,必須要設(shè)置auto:false,這樣就可以配合choose了,在choose,如果不執(zhí)行obj.upload(index, file)就不會(huì)上傳了。
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("文件開始上傳,請(qǐng)等待");
}
, done: function (res, index, upload) {
alert("文件上傳成功");
}, error: function (a, b) {
alert("文件上傳發(fā)生錯(cuò)誤");
}
});
});