layui上传多图
时间: 2023-06-29 22:12:42 浏览: 98
要使用layui上传多图,可以使用layui的upload模块和多文件上传功能。下面是一个示例代码:
HTML代码:
```html
<div class="layui-upload">
<button type="button" class="layui-btn" id="testList">选择多文件</button>
<button type="button" class="layui-btn" id="testUpload">上传</button>
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
预览图:
<div class="layui-upload-list" id="demoList"></div>
</blockquote>
</div>
```
JavaScript代码:
```javascript
layui.use('upload', function(){
var upload = layui.upload;
//多文件列表示例
var demoListView = $('#demoList')
,uploadListIns = upload.render({
elem: '#testList'
,url: '/upload/'
,accept: 'images'
,multiple: true
,auto: false
,bindAction: '#testUpload'
,choose: function(obj){
var files = obj.pushFile(); //将每次选择的文件追加到文件队列
//预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
obj.preview(function(index, file, result){
var tr = $(['<div class="layui-upload-item">'
,'<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img">'
,'<div class="layui-upload-item-del">删除</div>'
,'</div>'].join(''));
//删除
tr.find('.layui-upload-item-del').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('div.layui-upload-item').eq(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);
}
,error: function(index, upload){
var tr = demoListView.find('div.layui-upload-item').eq(index)
,tds = tr.children();
tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
tds.eq(3).find('.layui-progress-bar').css('background-color', '#FF5722');
}
});
});
```
这段代码中使用了upload.render方法,用于创建一个上传组件实例。其中,elem表示绑定的元素,url表示上传的服务器地址,accept表示上传的文件类型,multiple表示是否支持多文件上传,auto表示是否自动上传,bindAction表示绑定上传按钮,choose表示选择文件后的回调函数,done表示上传成功的回调函数,error表示上传失败的回调函数。在choose回调函数中,通过pushFile方法将选择的文件添加到上传队列中,通过preview方法预览本地文件。在done和error回调函数中,根据上传结果进行相应的操作。
阅读全文