• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

        小程序如何完成多圖上傳、圖片瀏覽效果?(代碼示例)

        小程序如何完成多圖上傳、圖片瀏覽效果?(代碼示例)

        更新時間:2025-09-20 文章作者:未知 信息來源:網絡 閱讀次數:

        微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一...
        微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。
        本篇文章給大家帶來的內容是介紹小程序如何實現多圖上傳、圖片預覽效果?(代碼示例) 。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。

        wxml代碼:

         <view class="weui-cell">   <view class="weui-cell__bd">
            <view class="weui-uploader">
              <view class="weui-uploader__hd">
                <view class="weui-uploader__title">點擊可預覽選好的圖片</view>
                <view class="weui-uploader__info">{{pics.length}}/9</view>
              </view>
              <view class="weui-uploader__bd">
                <view class="weui-uploader__files">
                  <block wx:for="{{pics}}" wx:for-item="image">
                    <view class="weui-uploader__file">
                      <image class="weui-uploader__img" src="{{image}}" src="{{image}}" bindtap="previewImage"></image>
                    </view>
                  </block>
                </view><view class="delete-btn" data-index="{{index}}" catchtap="deleteImg"></view>
                <!-- isShow 這個是判斷是否進行觸發點隱藏操作 -->
                <view class="weui-uploader__input-box {{isShow?'true':'hideTrue'}}">
                  <view class="weui-uploader__input" bindtap="chooseImage"></view>
                </view>
              </view>
            </view>
          </view></view>

        wxss代碼:

        page {
          line-height: 1.6;
          font-family: -apple-system-font, "Helvetica Neue", sans-serif;
        }
        icon {
          vertical-align: middle;
        }
        .weui-cell {
          padding: 10px 15px;
          position: relative;
          display: -webkit-box;
          display: -webkit-flex;
          display: flex;
          align-items: center;
        }
        .weui-cell_input {
          padding-top: 0;
          padding-bottom: 0;
        }
        .weui-uploader__hd {
          display: -webkit-box;
          display: -webkit-flex;
          display: flex;
          padding-bottom: 10px;
          align-items: center;
        }
        .weui-uploader__title {
          flex: 1;
        }
        .weui-uploader__info {
          color: #b2b2b2;
        }
        .weui-uploader__bd {
          margin-bottom: -4px;
          margin-right: -9px;
          overflow: hidden;
        }
        .weui-uploader__file {
          float: left;
          margin-right: 9px;
          margin-bottom: 9px;
        }
        .weui-uploader__img {
          display: block;
          width: 79px;
          height: 79px;
        }
        .weui-uploader__input-box {
          float: left;
          position: relative;
          margin-right: 9px;
          margin-bottom: 9px;
          width: 77px;
          height: 77px;
          border: 1px solid #d9d9d9;
        }
        .weui-uploader__input-box:before, .weui-uploader__input-box:after {
          content: " ";
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          background-color: #d9d9d9;
        }
        .weui-uploader__input-box:before {
          width: 2px;
          height: 39.5px;
        }
        .weui-uploader__input-box:after {
          width: 39.5px;
          height: 2px;
        }
        .weui-uploader__input {
          position: absolute;
          z-index: 1;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          opacity: 0;
        }
        
        .hideTrue {
          display: none
        }

        js代碼:

        var app = getApp();
        Page({
          data: {
            pics: [],
            count: [1, 2, 3, 4, 5, 6, 7, 8, 9],
            isShow: true
          },
          onLoad: function (options) {
            // 生命周期函數--監聽頁面加載
            isShow: (options.isShow == "true" ? true : false)
          },
          // 圖片上傳
          chooseImage: function () {
            var _this = this,
              pics = this.data.pics;
            wx.chooseImage({
              count: 9 - pics.length, // 最多可以選擇的圖片張數,默認9
              sizeType: ['original', 'compressed'], // original 原圖,compressed 壓縮圖,默認二者都有
              sourceType: ['album', 'camera'], // album 從相冊選圖,camera 使用相機,默認二者都有
              success: function (res) {
                // success
                var imgSrc = res.tempFilePaths;   //圖片路徑
                pics = pics.concat(imgSrc);   //選取的圖片的地址數組
                // 控制觸發添加圖片的最多時隱藏
                if (pics.length >= 9) {
                  _this.setData({
                    isShow: (!_this.data.isShow)
                  })
                } else {
                  _this.setData({
                    isShow: (_this.data.isShow)
                  })
                }
                _this.setData({
                  pics: pics
                })
              },
              fail: function () {
                // fail
              },
              complete: function () {
                // complete
              }
            })
          },
          // 圖片預覽
          previewImage: function (e) {
            var current = e.target.dataset.src
            wx.previewImage({
              current: current,
              urls: this.data.pics
            })
          }
        
        
         // 刪除圖片
         deleteImg: function (e) {
          var imgs = this.data.imgs;
          var index = e.currentTarget.dataset.index;
          imgs.splice(index, 1);
          this.setData({
           imgs: imgs
          });
         },
        uploadimg:function(){//這里觸發圖片上傳的方法
               var pics=this.data.pics;
               app.uploadimg({
                   url:'https://........',//這里是你圖片上傳的接口
                   path:pics//這里是選取的圖片的地址數組
                });
          },
        })

        在app.js中寫一個多張圖片上傳的方法,后面引入,你也可以寫在一個JS文件中,后面引入:

        //多張圖片上傳
            function uploadimg(data){
             var that=this,
                 i=data.i?data.i:0,//當前上傳的哪張圖片
                 success=data.success?data.success:0,//上傳成功的個數
                 fail=data.fail?data.fail:0;//上傳失敗的個數
              wx.uploadFile({
                    url: data.url, 
                    filePath: data.path[i],
                    name: 'file',//這里根據自己的實際情況改
                    formData:null,//這里是上傳圖片時一起上傳的數據
                    success: (resp) => {
                       success++;//圖片上傳成功,圖片上傳成功的變量+1
                       console.log(resp)
                        console.log(i);
                        //這里可能有BUG,失敗也會執行這里,所以這里應該是后臺返回過來的狀態碼為成功時,這里的success才+1
                    },
                    fail: (res) => {
                        fail++;//圖片上傳失敗,圖片上傳失敗的變量+1
                        console.log('fail:'+i+"fail:"+fail);
                    },
                    complete: () => {
                        console.log(i);
                        i++;//這個圖片執行完上傳后,開始上傳下一張
                    if(i==data.path.length){   //當圖片傳完時,停止調用          
                        console.log('執行完畢');
                        console.log('成功:'+success+" 失。"+fail);
                    }else{//若圖片還沒有傳完,則繼續調用函數
                        console.log(i);
                        data.i=i;
                        data.success=success;
                        data.fail=fail;
                        that.uploadimg(data);
                    }
                        
                    }
                });
            }

        效果圖,可點擊放大預覽:

        1.png

        總結:以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。

        以上就是小程序如何實現多圖上傳、圖片預覽效果?(代碼示例)的詳細內容,更多請關注php中文網其它相關文章!


        小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 99久热只有精品视频免费看| 一级毛片免费毛片毛片| 精品一区二区三区免费毛片爱| 国产精品亚洲mnbav网站| 久久久久久久久久国产精品免费 | 久久国产精品免费专区| 色影音免费色资源| 久久久亚洲AV波多野结衣| 69视频免费观看l| 亚洲午夜国产精品无卡| 最新欧洲大片免费在线| 亚洲色中文字幕在线播放| 18禁无遮挡无码网站免费| 亚洲日本精品一区二区| 亚洲一级免费视频| 国产精品亚洲午夜一区二区三区| 好男人视频在线观看免费看片| 亚洲av无码偷拍在线观看| 在线日本高清免费不卡| 亚洲人成综合在线播放| 日韩特黄特色大片免费视频| 黄床大片30分钟免费看| 亚洲人成伊人成综合网久久久| 久久精品国产免费| 亚洲精品福利你懂| 国产大片91精品免费看3| 久久高潮一级毛片免费| 国产成人免费网站在线观看| 日韩a毛片免费观看| 久久91亚洲精品中文字幕| 91情侣在线精品国产免费| 羞羞视频免费观看| 亚洲欧洲自拍拍偷午夜色无码| 99久久人妻精品免费一区| 亚洲人成7777| 亚洲精品综合久久| 24小时日本电影免费看| 亚洲第一se情网站| 亚洲国产精品线在线观看| 在线精品免费视频无码的| 亚洲免费人成在线视频观看|