layui-upload文件上傳后清空以上傳的文件跟選擇文件后清空上一次選擇的文件
解決思路就是在回方法 choose 中 通過 UPLOAD_FILES = obj.pushFile(); 將它的返回值用一個變量存起來, 在文件上傳成后把UPLOAD_FILES 這個變量里的文件全部刪除, 因為我找了一下 layui 的文件上傳好像沒有提供可以獲取所有文件的api方法, 只能通過這種方式獲取了,當然大神可以去翻源碼, 肯定是有其它方法可以獲取全部文件的. 只是我懶得去找.
同理選擇文件后將上一次選擇的文件刪除也一樣, 因為用戶選擇文件時肯定會選擇錯, 如果不將上一次選擇的文件刪除的話就會導致文件隊列里有多個文件,同而上傳多次(我是指一次只能上次一個文件的情況下, 如用戶選擇頭像之類的)
在這種情況也是一樣,進入choose方法時不管它三七二十一,先把所有的文件刪除再說,然后再當前文件pushFile()進去就可以了
let UPLOAD_FILES;
let upload = layui.upload.render({
elem: '#selected',
url: '/uploadCloud/',
auto: false,
number: 1,
size: 1024 * 5,
acceptMime: 'image/*',
choose: function (obj) {
//這里的文件加入隊列有點多余,但只能通過這種方式才能拿到所有文件的隊列,
//誰讓這插件沒提供相關的api呢
UPLOAD_FILES = obj.pushFile();
clearFile(); //將所有文件先刪除再說
obj.preview(function (index, file, result) {
$('#selected').attr('src', result);
obj.pushFile(); 再把當前文件重新加入隊列
});
},done: function(res){
clearFile();
}
})
//清空文件隊列
function clearFile(){
for (let x in UPLOAD_FILES) {
delete UPLOAD_FILES[x];
}
————————————————
版權聲明:本文為CSDN博主「江西DJ煙仔ReMix」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u014598014/article/details/90559211