微信小程序?qū)崿F(xiàn)上傳多張本地圖片到服務(wù)器和圖片預(yù)覽

1着帽,前言


最近在寫(xiě)小程序,用到了wx.uploadFile方法孔厉,發(fā)現(xiàn)這方法居然不支持同時(shí)上傳多個(gè)文件聂抢,于是自己寫(xiě)了一個(gè)上傳多個(gè)的方法钧嘶。

[圖片上傳失敗...(image-c4d973-1610865751169)]

2,需求


博主做的是用戶投訴頁(yè)面琳疏;需求是用戶上傳最多三張圖片有决,最后把圖片和文字和用戶信息等一起提交給服務(wù)器;

[圖片上傳失敗...(image-8e50b6-1610865751169)]

3空盼,解決思路


博主的解決思路是定義一個(gè)遞歸函數(shù)书幕,遞歸調(diào)用wx.uploadFile上傳,全部完成后結(jié)束遞歸揽趾。

4台汇,代碼展示


this.data里的數(shù)據(jù)

/**
* 頁(yè)面的初始數(shù)據(jù)
*/
data: {
 imgs:[],//上傳圖片列表
 imgPath:[],//已上傳成功的圖片路徑
},

上傳圖片代碼

// 上傳照片
chooseImg (e) {
  const _this = this;
  let imgs = this.data.imgs;
  let imgNumber = this.data.imgs.length;//當(dāng)前已上傳的圖片張數(shù)
  if(imgNumber >= 3){
    FN.Toast("超出上傳個(gè)數(shù)");
    return false;
  }else{
    imgNumber = 3 - imgNumber;
  };
  wx.chooseImage({//打開(kāi)本地相冊(cè)選擇圖片
    count: imgNumber,
    sizeType: ['original', 'compressed'],
    sourceType: ['album', 'camera'],
    success (res) {
      const tempFilePaths = res.tempFilePaths;
      for(let i = 0;i < tempFilePaths.length; i++){
        imgs.push(tempFilePaths[i]);
      }
      _this.setData({//賦值,回顯照片
        imgs: imgs
      });
      let successUp = 0; //成功
      let failUp = 0; //失敗
      let count = 0; //第幾張
      let length = tempFilePaths.length; //總數(shù)
      _this.recursionUploading(tempFilePaths, successUp, failUp, count, length);//調(diào)用上傳方法
    }
  })
},

遞歸上傳方法

//采用遞歸的方式上傳圖片
recursionUploading(imgPaths, successUp, failUp, count, length){
  var _this = this;
  wx.showLoading({
  title: '正在上傳第' + count + '張',
  });
  wx.uploadFile({
    url: `${app.globalData.baseURL}/api接口地址`,
    filePath: imgPaths[count],
    formData:{
      userId:app.globalData.userMsg.userId
    },
    name: "uploadImage",
    header: {
      'content-type': 'multipart/form-data'
    }, 
    success (e) {
      console.log(e)
      let path = _this.data.imgPath;
      let obj = e.data;
      if(obj.status === "y"){
        path.push(obj.infoObject);
        _this.setData({
          imgPath:path
        });
      }
      successUp++;//成功+1
    },
    fail (e) {
      failUp++;//失敗+1
    },
    complete (e) {
      count++;//下一張
      if(count == length){
        FN.Toast(`上傳成功${successUp}`)
      }else{
        //遞歸調(diào)用但骨,上傳下一張
        _this.recursionUploading(imgPaths, successUp, failUp, count, length);
      }
    }
  })
},

預(yù)覽大圖

// 預(yù)覽大圖
lookBigImg (e) {
  let index = e.currentTarget.dataset.index;//索引
  let big = this.data.imgs[index];
  wx.previewImage({
    current: big, // 當(dāng)前顯示圖片的http鏈接
    urls: this.data.imgs // 需要預(yù)覽的圖片http鏈接列表
  })
},

如果看了覺(jué)得有幫助的励七,我是@鵬多多11997110103,歡迎 點(diǎn)贊 關(guān)注 評(píng)論奔缠;
END

往期文章

個(gè)人主頁(yè)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載掠抬,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。
  • 序言:七十年代末校哎,一起剝皮案震驚了整個(gè)濱河市两波,隨后出現(xiàn)的幾起案子瞳步,更是在濱河造成了極大的恐慌,老刑警劉巖腰奋,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件单起,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡劣坊,警方通過(guò)查閱死者的電腦和手機(jī)嘀倒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)局冰,“玉大人测蘑,你說(shuō)我怎么就攤上這事】刀” “怎么了碳胳?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)沫勿。 經(jīng)常有香客問(wèn)我挨约,道長(zhǎng),這世上最難降的妖魔是什么产雹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任诫惭,我火速辦了婚禮,結(jié)果婚禮上洽故,老公的妹妹穿的比我還像新娘贝攒。我一直安慰自己,他們只是感情好时甚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著哈踱,像睡著了一般荒适。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上开镣,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天刀诬,我揣著相機(jī)與錄音,去河邊找鬼邪财。 笑死陕壹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的树埠。 我是一名探鬼主播糠馆,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怎憋!你這毒婦竟也來(lái)了又碌?” 一聲冷哼從身側(cè)響起九昧,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎毕匀,沒(méi)想到半個(gè)月后铸鹰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡皂岔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蹋笼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躁垛。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡姓建,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缤苫,到底是詐尸還是另有隱情速兔,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布活玲,位于F島的核電站涣狗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏舒憾。R本人自食惡果不足惜镀钓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望镀迂。 院中可真熱鬧丁溅,春花似錦、人聲如沸探遵。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)箱季。三九已至涯穷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間藏雏,已是汗流浹背拷况。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掘殴,地道東北人赚瘦。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像奏寨,于是被迫代替她去往敵國(guó)和親起意。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容