layui 多个上传图片公用

HTML 代码

<div class="layui-upload">
    <button type="button" class="layui-btn btnUploadImg" data-url="/webBankImgController.do?uploadBankImg1" data-file="jpg" id="test1">上传图片</button>
    <div class="layui-upload-list">
        <input type="hidden" id="input1" value="">
        <img class="layui-upload-img" id="demo1" style="width: 100px;height: 100px;">
        <p class="demoText"></p>
    </div>
</div>
<div class="layui-upload">
    <button type="button" class="layui-btn btnUploadImg" data-url="/webBankImgController.do?uploadBankImg2" data-file="jpg" id="test2">上传图片</button>
    <div class="layui-upload-list">
        <input type="hidden" id="input2" value="">
        <img class="layui-upload-img" id="demo2" style="width: 100px;height: 100px;">
        <p class="demoText"></p>
    </div>
</div>
<div class="layui-upload">
    <button type="button" class="layui-btn btnUploadImg" data-url="/webBankImgController.do?uploadBankImg3" data-file="jpg" id="test3">上传图片</button>
    <div class="layui-upload-list">
        <input type="hidden" id="input3" value="">
        <img class="layui-upload-img" id="demo3" style="width: 100px;height: 100px;">
        <p class="demoText2"></p>
    </div>
</div>
<div class="layui-upload">
    <button type="button" class="layui-btn btnUploadImg" data-url="/webBankImgController.do?uploadBankImg4" data-file="jpg" id="test4">上传图片</button>
    <div class="layui-upload-list">
        <input type="hidden" id="input4" value="">
        <img class="layui-upload-img" id="demo4" style="width: 100px;height: 100px;">
        <p class="demoText2"></p>
    </div>
</div>

多个上传按钮

js

layui.use(['form','layer','upload'], function(){
        var form = layui.form
          ,layer = layui.layer
              ,$ = layui.jquery
         ,upload = layui.upload;

        var btnUpload = document.getElementsByClassName("btnUploadImg");
        for (let i = 0; i < btnUpload.length; i++) {
            var dataUrl = $(btnUpload[i]).attr("data-url");
            var dataFile = $(btnUpload[i]).attr("data-file");
            //普通图片上传
            var uploadInst = upload.render({
                elem: '#'+btnUpload[i].id
                ,url: dataUrl
                ,accept:"file"
                ,exts:dataFile
                ,before: function(obj){
                    var btnId = btnUpload[i].id;
                    var imgId = $("#" +btnId).siblings("div").find("img").attr("id");
                    //预读本地文件示例,不支持ie8
                    obj.preview(function(index, file, result){
                        $('#' +imgId).attr('src', result); //图片链接(base64)
                    });
                }
                ,done: function(res){
                    //如果上传失败
                    if(res.code > 0){
                        return layer.msg('上传失败');
                    }
                    //上传成功
                    var btnId = btnUpload[i].id;
                    var inputId = $("#" +btnId).siblings("div").find("input[type='hidden']").attr("id");
                    $("#" +inputId).val(res.obj)
                }
                ,error: function(){
                    //演示失败状态,并实现重传
                    var btnId = btnUpload[i].id;
                    var demoText =  $("#" +btnId).siblings("div").find('p');
                    demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
                    demoText.find('.demo-reload').on('click', function(){
                        uploadInst.upload();
                    });
                }
            });
        }
    });

效果

上传之后效果

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值