小程序多圖上傳

多張圖片上傳代碼方法function:

uploadimg: function (data) { // 2M
    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: { //這裏是上傳圖片時一塊兒上傳的數據
        scope: 'qpp', 
        auth: 'Px50C^t*&k7mGSnu'
      },
      success: (res) => {
        var data = JSON.parse(res.data)
        let uploadimgPath = []
        uploadimgPath.push(data.data.items.file[0].filename);
        wx.setStorageSync('uploadimgPath', uploadimgPath);
        success++; //圖片上傳成功,圖片上傳成功的變量+1
        console.log(res.data)
        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);
        }
      }
    });
  },
複製代碼

使用:

app.uploadimg({
        url: `接口地址`,
        path: arrList //這裏是選取的圖片的地址數組
    });
    
遍歷圖片得到新數組:
    let that = this;
    let arrList = []; // 數據內的團圖片
    for (var value of that.data.list.pictures) {
      arrList.push(value.url)
    }複製代碼
相關文章
相關標籤/搜索