溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

tp5使用layui實現(xiàn)多個圖片上傳的方法是什么

發(fā)布時間:2021-10-26 14:36:34 來源:億速云 閱讀:223 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“tp5使用layui實現(xiàn)多個圖片上傳的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“tp5使用layui實現(xiàn)多個圖片上傳的方法是什么”吧!

tp5使用layui實現(xiàn)多個圖片上傳(帶附件選擇),如何加載layui在此不詳細說明,有需要可以百度

tp5使用layui實現(xiàn)多個圖片上傳的方法是什么

html代碼,主要處理都是在jq中,完成方法全部原創(chuàng),也許不是最簡單的,但也能實現(xiàn)效果

{include file="public/header" /}
<body>
<div class="x-nav">
      <span class="layui-breadcrumb">
        <a href="">首頁</a>
        <a href="">多選圖片列表</a>
        <a>
          <cite>添加多選圖片</cite></a>
      </span>
  <a class="layui-btn layui-btn-small"  href="javascript:location.replace(location.href);" rel="external nofollow"  title="刷新">
    <i class="layui-icon" >?</i></a>
</div>
<div class="x-body">
  <div class="top" >添加多選圖片</div>
  <div ></div>
 
    <form  action="" enctype="multipart/form-data" method="post" role="form" onSubmit="return check()">
 
 
      <div class="layui-upload">
        <button type="button" class="layui-btn" id="upload_img">多圖片上傳</button>
        <a class="layui-btn layui-btn-sm layui-btn-normal" onclick="selectImg('選擇圖片','{:url("selectImg")}','1000','600')" href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >
        <i class="layui-icon">&#xe60a;</i>選擇圖片
        </a>
        <blockquote class="layui-elem-quote layui-quote-nm" >
          預(yù)覽圖:
          <div class="layui-upload-list" id="demo2"></div>
        </blockquote>
      </div>
 
      <input  name="url" class="imgInput" type="hidden">
      <!--<button type="button"  class="layui-btn" onclick="test()">-->
        <!--測試-->
      <!--</button>-->
    <div class="layui-form-item">
      <label for="" class="layui-form-label">
      </label>
      <button type="submit" class="layui-btn btnAdd" lay-filter="add" lay-submit="">
        增加
      </button>
 
    </div>
  </form>
</div>
<style>
  .imgInput{
    width: 600px;
    height: 35px;
  }
  .layui-form-label{
    font-size: 14px;
    width: 100px;
  }
 
  select{
    width: 500px;
  }
  #pre_img{
    display: none;
    padding: 5px;
    border: 1px solid #999;
  }
  #demo2{
    display: flex;
    display: -webkit-flex;
    /*justify-content: space-between;*/
    flex-direction: row;
    flex-wrap: wrap;
  }
  .img{
    width: 150px;
    height: 150px;
  }
  .btnAdd{
    margin-top: 40px;
  }
  .img_item{
    display: flex;
    flex-direction: column;
    text-align: center;
    margin-right: 20px;
    margin-bottom: 20px;
  }
  .delimg{
    text-align: center;
    line-height: 20px;
    width: 160px;
    height: 20px;
    background-color: red;
    color: white;
    margin-top: 5px;
  }
</style>
 
<script>
  function check(){
    $('input[name="url"]').val(urlList);
    var str = $('input[name="url"]').val();
 
    if(str ==''|| str==null || str=='undefined'){
      alert("請選擇圖片");
      return false;
    }
 
  }
 
  function selectImgGo($url,$urlWeb){
    var index = 0;
    if(urlList.length>0){
      index = urlList.length;
    }
      var img = $([
        '<div class="img_item">',
        '<div class="img" >',
        '<img src="'+ $urlWeb +'" alt="' + $url +'" class="layui-upload-img" ></div>',
        '<div class="delimg" id="delimg" onclick=delImg("'+ index +'")  href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  >刪除</div></div>'
      ].join(''));
      $('#demo2').append(img);
 
    urlList.push($url);
    imgList.push($urlWeb);
  }
  var imgList = [];
  var urlList = [];
  layui.use(['upload','jquery'],function () {
    $ = layui.jquery;
    var upload = layui.upload;
    //多圖片上傳
    upload.render({
      elem: '#upload_img'
      ,url:"{:url('share/upload_img')}" //上傳接口
      ,multiple: true
      ,before: function(obj){
        //預(yù)讀本地文件示例,不支持ie8
        obj.preview(function(index, file, result){
 
        })
      }
      ,done: function(res){
        var index0 = 0;
        if(urlList.length>0){
          index0 = urlList.length;
        }
        var img0 = $([
          '<div class="img_item">',
          '<div class="img" >',
          '<img src="'+ res.msg +'"  class="layui-upload-img" ></div>',
          '<div class="delimg" id="delimg" onclick=delImg("'+ index0 +'")  href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  >刪除</div></div>'
        ].join(''));
        $('#demo2').append(img0);
        urlList.push(res.url);
        imgList.push(res.msg);
      }
      ,error: function(){
//        layer.close(layer.msg());//關(guān)閉上傳提示窗口
        //請求異常回調(diào)
      }
 
    });
  });
 
  function delImg(index){
    urlList.splice(index,1);
    imgList.splice(index,1);
    $('#demo2').empty();
    for (var i=0;i<imgList.length;i++){
      var img0 = $([
        '<div class="img_item">',
        '<div class="img" >',
        '<img src="'+ imgList[i] +'"  class="layui-upload-img" ></div>',
        '<div class="delimg" id="delimg" onclick=delImg("'+ i +'")  href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  >刪除</div></div>'
      ].join(''));
      $('#demo2').append(img0);
    }
  }
 
  /*選擇圖片*/
  function selectImg(title,url,w,h){
    x_admin_show(title,url,w,h);
  } 
</script>
</body> 
</html>

php代碼

  //php layui圖片上傳
    public function upload_img(){
        $file = request()->file('file'); // 獲取上傳的文件
        if($file==null){
            exit(json_encode(array('code'=>1,'msg'=>'未上傳圖片')));
        }else{
            //5、對上傳文件做出條件限制(類型,大小等)
            $map = [
                'ext'=>'jpg,png,gif,jpeg',//后輟名
                'size'=>320000000,//最大3M
            ];
            //6、對上傳的文件進行較驗,如果合格就進行轉(zhuǎn)移到預(yù)定設(shè)定好的public/uploads目錄下
            //返回保存的文件信息info,包括文件名和大小等數(shù)據(jù)
            $info = $file->validate($map)->move(ROOT_PATH . 'public/uploads/img');
            //獲取圖片寬高
            list( $width , $height , $type , $attr ) = getimagesize ($info->getPathName());
 
            if(is_null($info)){
                $this->error($info->getError());
            }
            $img = str_replace('\\','/',$info->getSaveName());
            //保存附件
            $annexData['filesize'] = $info->getInfo()['size'];
            $annexData['mimetype'] = $info->getInfo()['type'];
            $annexData['filename'] = $info->getInfo()['name'];
            $annexData['imagewidth'] = $width;
            $annexData['imageheight'] = $height;
            $annexData['type'] = 'img';
            $annexData['url'] = $img;
            AAnnexModel::create($annexData);
            $img = constant("URL")."/uploads/img/".$img;
            exit(json_encode(array('code'=>0,'msg'=>$img,'url'=>$annexData['url'])));
        }
 
    }
 
 //多選圖片添加頁面
    public function addImages(){
        if($this->request->isPost()){
            //2、獲取提交過來的數(shù)據(jù),最后true參數(shù),表示連上傳文件一起獲取
            $data = $this->request->param(true);
            $res = AImagesModel::create($data);
            if(is_null($res)){
                $this->error('文件添加失敗');
            }else{
                $this->success('文件添加成功...',url('imagesList'));
            }
            return;
        }
        return $this->fetch('images_add');
    }

到此,相信大家對“tp5使用layui實現(xiàn)多個圖片上傳的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI