Layui中的upload使用方法

1871 1871
所属源码: LayUi
sam 2022-10-26 15:17:05

标准代码

layui.use('upload', function(){
  var upload = layui.upload;
   
  //执行实例
  var uploadInst = upload.render({
    elem: '#test1' //绑定元素
    ,url: '/upload/' //上传接口
    ,done: function(res){
      //上传完毕回调
    }
    ,error: function(){
      //请求异常回调
    }
  });
});

在使用的时候需要注意,upload.render不能对一个元素进行重复render,否则会导致不能进行访问

场景1:

在点击一个图片

弹出一个图片修改的图片框

此时,上传是动态元素,则upload.render是无效的,解决方法如下

            $("body").on("click", ".showProductImage", function() {
                    var me = this;
                    var imgSrc = $(this).attr("src");

                    uploadIndex++;
                    var uploadId = "showImageUpload" + uploadIndex;
                    var imgId = "curImage" + uploadIndex;
                    var htmlContent = $("#imgDialog").html();
                    htmlContent = htmlContent.replace("-uploadIndex-", uploadIndex);
                    htmlContent = htmlContent.replace("-curImage-", imgSrc);
                    htmlContent = htmlContent.replace("-curImageId-", imgId);

                    layer.open({
                        type: 1,
                        title: "图片信息",
                        area: ['80%', '80%'],
                        content: htmlContent,
                        success: function() {
                            upload.render({
                                elem: '#' + uploadId,
                                url: '/manage/upload/DoUploadImageForLayUi',
                                done: function(res) {
                                    //如果上传失败
                                    if (res.code > 0) {
                                        return layer.msg('上传失败');
                                    } else {
                                        if ($($(me).parent()).attr("class") === "spanProductImage") {
                                            $(me).attr("src", res.ServerRelativeFileName);
                                            $($($(me).parent().parent().parent()).find("input[name='DetailImage']")[0]).val(res.ServerRelativeFileName);
                                        } else if ($($(me).parent()).hasClass("sizeandcolor")) {
                                            $(me).attr("src", res.ServerRelativeFileName);
                                            $($($(me).parent()).find("input[name='LaLianSupplierDetailImage']")[0]).val(res.ServerRelativeFileName);
                                        }

                                        $("#"+imgId).attr("src", res.ServerRelativeFileName);
                                    }
                                }
                            });

                            $("body").on("click",
                                ".showImageDelete",
                                function() {
                                    if ($($(me).parent()).attr("class") === "spanProductImage") {
                                        $($($(me).parent().parent().parent()).find("input[name='DetailImage']")[0]).val("#");
                                        $($(me).parent().parent().parent().find("div[class='spanProductImage']")[0]).html("<img class='showProductImage' src='-curImage-' />");

                                       
                                    } else if ($($(me).parent()).hasClass("sizeandcolor")) {
                                        alert("cc");
                                        $($($(me).parent()).find("input[name='LaLianSupplierDetailImage']")[0]).val("-curImage-");
                                        $(me).attr("src", "-curImage-");
                                    }

                                    $("#"+imgId).attr("src", "");
                                });
                        }
                    });


                });

回帖
  • 消灭零回复
相关文章