• layui多文件选择之后自动上传


    html:

    <div class="layui-upload">
    <button type="button" class="layui-btn layui-btn-normal" id="testList">选择图片(最多2张)</button>
    <div class="layui-upload-list">
    <table class="layui-table" id="table">
    <thead>
    <tr>
    <th>文件名</th>
    <th>大小</th>
    <th>状态</th>
    <th>操作</th>
    </tr>
    </thead>
    <tbody id="demoList"></tbody>
    </table>
    </div>
    <input type="hidden" id="runimgfilename" name="runimgfilename" value="">
    </div>

    js:

    //多文件自动上传
    var demoListView = $('#demoList')
    , uploadListIns = upload.render({
    elem: '#testList'
    , url: 'UploadKeepImg'
    , accept: 'jpg|png'
    , multiple: true
    , number: 2
    , auto: true
    , before: function (obj) {
    var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
    obj.preview(function (index, file, result) {
    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();
    var a = res.data;
    tds.eq(2).html('<span id="success" style="color: #5FB878;">上传成功</span>');
    tds.eq(3).html('<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete" mydate="' + a + '">删除</button>'); //清空操作
    tr.find('.demo-delete').on('click', function () {
    tr.remove();
    uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
    });
    } else {
    this.error(index, upload);
    }
    }
    , error: function (index, upload) {
    var tr = demoListView.find('tr#upload-' + index)
    , tds = tr.children();
    tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
    tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
    }
    });

    参考文章:

    https://fly.layui.com/jie/26134/

    https://www.cnblogs.com/zhaopanpan/articles/9927548.html

  • 相关阅读:
    MVVM架构~knockoutjs实现简单的购物车
    Thrift架构~目录
    WebApi系列~在WebApi中实现Cors访问
    WebApi系列~基于RESTful标准的Web Api
    MVVM架构~目录
    IOS设计模式学习(20)命令
    MySQL保留关键字
    Eclipse with C++: "Launch failed. Binary not found."
    HTML5 Canvas鼠标与键盘事件
    通过openssh远程登录时的延迟问题解决
  • 原文地址:https://www.cnblogs.com/Ly426/p/10283788.html
Copyright © 2020-2023  润新知