layui目前暂不支持批量上传(即同时上传多个),但支持添加多个文件(即一个一个上传)
版本:layui-v2.5.7 后端:php
外部文件引入
容器构建
选择多文件
文件名
大小
上传进度
操作
开始上传
JS核心上传
layui.use(['upload', 'element', 'layer'], function () {
var $ = layui.jquery
, upload = layui.upload
, element = layui.element
, layer = layui.layer;
//演示多文件列表
var uploadListIns = upload.render({
elem: '#testList'
, elemList: $('#demoList') //列表元素对象
, url: 'http://test.com/get.php'
, accept: 'file'
, multiple: true
, number: 10
, auto: false
, bindAction: '#testListAction'
, choose: function (obj) {
var that = this;
var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
//读取本地文件
obj.preview(function (index, file, result) {
var tr = $([''
, '' + file.name + ''
, '' + (file.size / 1014).toFixed(1) + 'kb'
, ''
, ''
, '重传'
, '删除'
, ''
, ''].join(''));
//单个重传
tr.find('.demo-reload').on('click', function () {
obj.upload(index, file);
});
//删除
tr.find('.demo-delete').on('click', function () {
delete files[index]; //删除对应的文件
tr.remove();
uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
});
that.elemList.append(tr);
element.render('progress'); //渲染新加的进度条组件
});
}
, done: function (res, index, upload) { //成功的回调
var that = this;
console.log(res);
if (res.code == 0) { //上传成功
var tr = that.elemList.find('tr#upload-' + index), tds = tr.children();
tds.eq(3).html(''); //清空操作
delete this.files[index]; //删除文件队列已经上传成功的文件
return;
}
this.error(index, upload);
}
, allDone: function (obj) { //多文件上传完毕后的状态回调
var json = JSON.stringify(obj);
console.log(json);
}
, error: function (index, upload) { //错误回调
var that = this;
var tr = that.elemList.find('tr#upload-' + index)
, tds = tr.children();
tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
}
, progress: function (n, elem, e, index) {
element.progress('progress-demo-' + index, n + '%'); //执行进度条。n 即为返回的进度百分比
}
});
});
后端PHP
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?