>웹 프론트엔드 >JS 튜토리얼 >Layui 업로드 컴포넌트 사용 방법 공유

Layui 업로드 컴포넌트 사용 방법 공유

小云云
小云云원래의
2018-03-05 16:42:262215검색

이 기사에서는 Layui 업로드 구성 요소를 사용하는 방법을 주로 공유합니다. 먼저 프런트 엔드 코드를 붙여넣어 모든 사람에게 도움이 되기를 바랍니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>
    <title>产品特性Form</title>
    <link href="~/Content/Base/layui/css/layui.css" rel="stylesheet" type="text/css" />
    <script src="~/Content/Base/layui/layui.js" type="text/javascript"></script>
    <script src="../../../../Content/Views/js/jquery-1.8.3.min.js" type="text/javascript"></script>
    <script src="../../../../Content/Views/js/framework-ui.js" type="text/javascript"></script>
    <style>
        @*table
        {            height: 150px;
        }        .layui-form-label
        {            width: 100px;        }*@    </style></head><body>


    <p style="width:100%;">
        <p class="layui-upload">
          <button type="button" class="layui-btn layui-btn-normal" id="testList">选择多文件</button> 
          <p class="layui-upload-list">
            <table class="layui-table" id="tableFile">
              <thead>
                <tr><th>文件名</th>
                <th>大小</th>
                <th>状态</th>
                <th>操作</th>
              </tr></thead>
              <tbody id="demoList"></tbody>
            </table>
          </p>
          <button type="button" class="layui-btn" id="testListAction">开始上传</button>
        </p> 
    </p>


    <script>

        function getModelName() {
            var url = location.search; //获取url中"?"符后的字串 
            var theRequest = new Object();            if (url.indexOf("?") != -1) {                var str = url.substr(1);
                strs = str.split("&");                for (var i = 0; i < strs.length; i++) {
                    theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
                }
            }            return theRequest;
        };        var parentUrlObj = getModelName();        var FileType = decodeURI(escape(parentUrlObj[&#39;filetype&#39;]));        var ModelId = decodeURI(escape(parentUrlObj[&#39;modelId&#39;]));        var NodeId = decodeURI(escape(parentUrlObj[&#39;nodeid&#39;]));        var ProductId = decodeURI(escape(parentUrlObj[&#39;productid&#39;]));

        layui.use([&#39;form&#39;, &#39;upload&#39;], function () {
            var form = layui.form,
            upload = layui.upload;            var demoListView = $(&#39;#demoList&#39;)
                  , uploadListIns = upload.render({
                      elem: &#39;#testList&#39;
                    , url: &#39;/ModelList/uploadNodeAttributeFile?filetype=&#39; + FileType + &#39;&modelid=&#39; + ModelId + &#39;&nodeid=&#39; + NodeId + &#39;&productid=&#39; + ProductId
                    , accept: &#39;file&#39;
                    , multiple: true
                    , auto: false
                    , bindAction: &#39;#testListAction&#39;
                    , choose: function (obj) {
                        var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
                        //读取本地文件
                        obj.preview(function (index, file, result) {
                            var tr = $([&#39;<tr id="upload-&#39; + index + &#39;">'
                          , '<td>' + file.name + '</td>'
                          , '<td>' + (file.size / 1014).toFixed(1) + 'kb</td>'
                          , '<td>等待上传</td>'
                          , '<td>'
                            , '<button class="layui-btn layui-btn-mini demo-reload layui-hide">重传</button>'
                            , '<button class="layui-btn layui-btn-mini 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.Status == "success") {                            var tr = demoListView.find('tr#upload-' + index), tds = tr.children();
                            tds.eq(2).html('<span style="color: #5FB878;">上传成功</span>');                            return null;
                        } else {                            if (res.Message == "文件已存在") {                                var tr = demoListView.find('tr#upload-' + index), tds = tr.children();
                                tds.eq(2).html('<span style="color: #5FB878;">上传失败,文件已存在</span>');                                return null;
                            } 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'); //显示重传
                    }
                  });
        });        function heightTiao(nameid) {
            var oIframe = window.top.document.getElementById(nameid);            var oBody = document.getElementsByTagName("body")[0];
            oIframe.style.height = oBody.offsetHeight + 40 + 'px';
        };    </script></body></html>

C# 백엔드 수신 코드

HttpFileCollection hfc = System.Web.HttpContext.Current.Request.Files;string str1 = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;string imgPath = "";string fileName = "";fileName = hfc[0].FileName;imgPath = Server.MapPath("~/bin/" + fileName);imgPath = Server.MapPath("~/bin/" + modelId + "/" + productid + "/" + nodeid + "/" + filetype + "/" + fileName);hfc[0].SaveAs(imgPath);return Content(new AjaxResult { Status = ResultType.success, Message = "执行成功" }.ToJson());

구체적인 사용 시 주의해야 할 점은
auto: false
bindAction: '#testListAction'
이 두 매개변수는 주로 파일 선택 시 파일을 업로드하지 않도록 설정됩니다. 업로드 작업을 수행하려면 버튼을 지정하세요
업로드 작업을 수행하려면 파일을 선택해야 한다고 가정해 보세요. auto를 true로 설정하고 binAction 매개변수만 제거하면 됩니다

다른 매개변수는layui 공식 웹사이트 문서를 참조하세요

파일 업로드는 판단이 필요합니다. 파일이 많기 때문에 나중에 쉽게 사용할 수 있도록 예시만 기록합니다.

관련 추천:

layui.js 양식 확인 기능 예시 공유

vue Alibaba Cloud 업로드 구성 요소 상세 설명

jQuerylayui의 일반적인 메소드 소개

위 내용은 Layui 업로드 컴포넌트 사용 방법 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.