Layui实现多图上传预览和删除功能

2024-10-20   阅读:240   类型:前端   分类:Layui    标签: layui.js Layui

在开发项目时,我们有时需要用到多图上传,比如商品缩列图等,我们可以使用layui自带的多图上传,不需要安装任何插件。

效果展示:

1、前端HTML部分代码

<div class="layui-form-item layui-form-text">
    <label class="layui-form-label">商品图</label>
    <div class="layui-input-block">
      <button type="button" class="layui-btn" id="test2">多图片上传</button>
      <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;width: 88%">
        <div class="layui-upload-list uploader-list" style="overflow: auto;" id="uploader-list"></div>
        <input type="hidden" name="imgs" class="multiple_show_img" value="" />
      </blockquote>
    </div>
  </div>

2、css样式

<style type="text/css">
  .uploader-list {
    margin-left: -15px;
  }
  .uploader-list .info {
    position: relative;
    margin-top: -25px;
    background-color: black;
    color: white;
    filter: alpha(Opacity=80);
    -moz-opacity: 0.5;
    opacity: 0.5;
    width: 100px;
    height: 25px;
    text-align: center;
    display: none;
  }
  .uploader-list .handle {
    position: relative;
    background-color: black;
    color: white;
    filter: alpha(Opacity=80);
    -moz-opacity: 0.5;
    opacity: 0.5;
    width: 100px;
    text-align: right;
    height: 22px;
    margin-bottom: -22px;
    display: none;
  }
  .uploader-list .handle i {
    margin-right: 5px;
  }
  .uploader-list .handle i:hover {
    cursor: pointer;
  }
  .uploader-list .file-iteme {
    margin: 12px 0 0 15px;
    padding: 1px;
    float: left;
  }
</style>

3、js代码:

<script>
var multiple_images = [];
  layui.use(['upload','form'], function () {
    var form = layui.form,
      layer = layui.layer,
      upload = layui.upload,
      $ = layui.$;

     //多图上传
     upload.render({
      elem: '#test2'
      ,url: '{:url("admin.upload.uploadImgWater")}' //改成您自己的上传接口
      ,multiple: true
      ,exts:'jpg|png|gif|bmp|jpeg'
      ,size: 6144
      ,data:{type:'aesthetics'}
      ,before: function(obj){
        layer.msg('图片上传中...', {
          icon: 16,
          shade: 0.01,
          time: 0
        })
      }
      ,done: function(res){
         multiple_images.push(res.data.src);
          $('.multiple_show_img').val(multiple_images);//把多选择的图片的地址统一放这里

          console.log(multiple_images)

        layer.close(layer.msg());//关闭上传提示窗口
        //上传完毕
        $('#uploader-list').append(
          '<div id="" class="file-iteme">' +
          '<div class="handle"><i class="layui-icon layui-icon-delete"></i></div>' +
          '<img style="width: 100px;height: 100px;" src='+ res.data.src +'>' +
          '<div class="info">' + res.data.src + '</div>' +
          '</div>'
        );
      }
    });
    //监听提交
    $(document).on("mouseenter mouseleave", ".file-iteme", function(event){
      if(event.type === "mouseenter"){
        //鼠标悬浮
        $(this).children(".info").fadeIn("fast");
        $(this).children(".handle").fadeIn("fast");
      }else if(event.type === "mouseleave") {
        //鼠标离开
        $(this).children(".info").hide();
        $(this).children(".handle").hide();
      }
    });
    // 删除图片
    $(document).on("click", ".file-iteme", function(event){
      var img = $(this).children('img').attr('src')
      const index = multiple_images.indexOf(img);
      if (index !== -1) {
        multiple_images.splice(index, 1); // 从找到的索引开始删除 1 个元素
      }
      $('.multiple_show_img').val(multiple_images)
      console.log(multiple_images)

      $(this).remove()
       $.ajax({
        url:"{:url('admin.aesthetics.del')}",
        type:'post',
        data:{ img: img},
        timeOut:0,
        datatype:'json',
        success:function(msg){
        }
      });
    });
     
  });

</script>

4、后端接口格式返回参考

return json(['code'=>1,'msg'=>'上传成功','data'=>['src'=>$src]]);
腾讯云11.11上云拼团Go,2核2G3M云服务器 28元/年

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://www.tpxhm.com/fdetail/1127.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×