layui单文件上传是真的恶心,你说用你的都是搞后端的,你功能提供的不全,还得让我一个一个去找,找到最后发现还没有这个功能!还得自己去实现!TMD!(本章主要解决单文件上传的一些恶心bug)
以下问题为非自动上传的一些问题
问题描述:第一次选好文件,再此点击上传文件,提交,后台台接收到多文件的问题。
问题原因:由于当你每点击一次确定时候,它都会在文件的队列里面添加上文件,不在乎你提交不提交。
解题思路:在点击确定文件时候加一个判断,判断队列的大小是否大于1,如果大于1就清除掉除最后一个文件的所有文件。
实现代码:如下图
function delAllFiles(allFiles){
var lastindex=0;//最后一次的id(就是layui中的index)
var fileSize=0;//文件队列数量
//遍历,获取最后一个文件的下标index
for (var x in allFiles) {
lastindex=x;//保存最后一次index
fileSize++;//由于没找到layui中文件队列的大小,所以自己定义了一个
}
//当文件队列大于1时
if(fileSize>1){
//删除其他文件,保留最后一个文件
for (var x in allFiles) {
if(x!=lastindex){
delete allFiles[x];
}
}
}
}
下图是choose中的代码
var allFiles = obj.pushFile();//获取文件队列.就是这玩意,万恶之源。
delAllFiles(allFiles);//调用方法,删除多余文件
至此问题解决,不过我在实现单文件上传过程中还遇到挺多问题的,欢迎大家一起讨论。