layui的多文件列表上传功能前端代码
2024-08-31 08:33:18
html页面的代码(注意:引入layui相关的css):
<div class="layui-upload" style="margin-left: 130px">
<button type="button" class=" layui-btn" id="choiceList"><i class="iconfont icon-e645"></i>选择多文件</button>
<div class="layui-upload-list layui-upList-minHeight">
<table class="layui-table">
<thead>
<tr>
<th>文件名</th>
<th>大小</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody id="demoList">
<tr id="upload">
<td>xxx.txt</td>
<td>xxxkb</td>
<td>等待上传</td>
<td><button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button><button class="layui-btn layui-btn-xs layui-btn-danger demo-delete" disabled>删除</button></td>
</tr>
</tbody>
</table>
</div>
<!-- <div class="layui-form-item layui-btn-Center">
<div class="layui-input-block text-right">
<button type="button" class="layui-btn layui-btn-xs" id="choiceListAction">开始上传</button>
<button class="btn layui-btn layui-btn-xs layui-btn-primary js_close" id="quXiao" type="button">取消</button>
</div>
</div> --> </div>
js的编写(引入layui相关的js):
layui.use(['upload','form','layer','laydate'], function(){
var $ = layui.jquery
,upload = layui.upload
,form = layui.form; //多文件列表示例
$(function() {
var uploadFile = {
init: function() {
this.upload();
},
//上传文件
upload: function() {
layui.use('upload', function() {
var $ = layui.jquery,
upload = layui.upload;
//多文件列表示例
var demoListView = $('#demoList'),
uploadListIns = upload.render({
elem: '#choiceList',
url: '__PUBLIC__/static/file/uploadFile',
accept: 'file',
multiple: true,
auto: true,
bindAction: '#choiceListAction',
choose: function(obj) {
var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
//读取本地文件
obj.preview(function(index, file, result) {
if($('#demoList tr td').eq(0).text() == 'xxx.txt') {
$('#demoList').empty();
}
var tr = $(['<tr id="upload-' + index + '">',
'<td>' + file.name + '</td>',
'<td>' + (file.size / 1014).toFixed(1) + 'kb</td>',
'<td>等待上传</td>',
'<td>',
'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>',
'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>',
'</td>',
'</tr>'
].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 值,以免删除后出现同名文件不可选
});
demoListView.append(tr);
});
},
done: function(res, index, upload) {
if(res.code == 0) { //上传成功
var tr = demoListView.find('tr#upload-' + index),
tds = tr.children();
tds.eq(2).html('<span style="color: #5FB878;">上传成功</span>');
tds.eq(3).html(''); //清空操作
return delete this.files[index]; //删除文件队列已经上传成功的文件 }
this.error(index, upload, res.msg);
},
error: function(index, upload, msg) {
var tr = demoListView.find('tr#upload-' + index),
tds = tr.children();
tds.eq(2).html('<span style="color: #FF5722;">' + msg + '</span>');
tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
}
});
});
} }
uploadFile.init();
}); });
效果图
最新文章
- 阿里云accessKey如何创建?~ 2015.08.25
- 【BZOJ】4245: [ONTAK2015]OR-XOR
- tomcat端口号被占用
- D3.js 学习( 一)
- jvm三的三种类加载器
- HDU 5734 Acperience(返虚入浑)
- Aspose&#160;强大的服务器端 excel word ppt pdf 处理工具
- c#获取枚举
- Java: constructor 构造代码块
- Android(java)学习笔记230:服务(service)之绑定服务的细节
- AOP入门(转)
- DevExpress中GridControl的重新绑定数据后如何刷新 (转)
- Codeforces Round #450 (Div. 2) C. Remove Extra One
- SHA1算法原理
- 【SPL标准库专题(2)】 Iterator
- thinkphp结合layui上传视频
- css position定位详解
- ASP.NET Core依赖注入
- hdu 5078(2014鞍山现场赛 I题)
- mysql创建数据库和删除数据库