微信小程序?qū)崿F(xiàn)上傳多個(gè)文件 超過10個(gè)
本文實(shí)例為大家分享了微信小程序?qū)崿F(xiàn)上傳多個(gè)文件超過10個(gè)的具體代碼,供大家參考,具體內(nèi)容如下
【小程序筆記】wx.uploadFile(OBJECT)
先說說遇到的問題:
小程序可通過wx.uploadFile(OBJECT)接口上傳手機(jī)文件至服務(wù)器,但是在文檔中關(guān)于請(qǐng)求中有這么一段說明:
request、uploadFile、downloadFile 的最大并發(fā)限制是 10 個(gè)
意思就是這三個(gè)接口請(qǐng)求并發(fā)數(shù)不能超過10個(gè),否則報(bào)以下錯(cuò)誤
uploadFile:fail exceed max upload connection count 10
但是業(yè)務(wù)場(chǎng)景總會(huì)需要堆砌一些復(fù)雜的功能,比如需要上傳多張照片到服務(wù)器啊,需要一張一張的上傳,等等。
既然不能一下子上傳多個(gè)文件,那就用最簡(jiǎn)單的方法完成復(fù)雜的功能即可,先上傳完一張?jiān)偕蟼飨乱粡垼?/p>
具體看看主要兩個(gè)方法:
/** * 上傳照片//選擇圖片時(shí)限制9張,如需超過9張,同理亦可參照此方法上傳多張照片 */ uploadImg:function(){ var that = this; wx.chooseImage({ count: 9, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success: function(res){ var successUp = 0; //成功 var failUp = 0; //失敗 var length = res.tempFilePaths.length; //總數(shù) var count = 0; //第幾張 that.uploadOneByOne(res.tempFilePaths,successUp,failUp,count,length); }, }); }, /** * 采用遞歸的方式上傳 */ uploadOneByOne(imgPaths,successUp, failUp, count, length){ var that = this; wx.showLoading({ title: '正在上傳第'+count+'張', }) wx.uploadFile({ url: 'https://example.weixin.qq.com/upload', //僅為示例,非真實(shí)的接口地址 filePath: imgPaths[count], name: count,//示例,使用順序給文件命名 success:function(e){ successUp++;//成功+1 }, fail:function(e){ failUp++;//失敗+1 }, complete:function(e){ count++;//下一張 if(count == length){ //上傳完畢,作一下提示 console.log('上傳成功' + successUp + ',' + '失敗' + failUp); wx.showToast({ title: '上傳成功' + successUp, icon: 'success', duration: 2000 }) }else{ //遞歸調(diào)用,上傳下一張 that.uploadOneByOne(imgPaths, successUp, failUp, count, length); console.log('正在上傳第' + count + '張'); } } }) },
注釋比較詳細(xì),可以看到方法比較簡(jiǎn)單,示例只做9張圖片的上傳,可使用for循環(huán)調(diào)用上傳文件的接口,但是在某些特定的場(chǎng)景下,需要考慮可能需要上傳多張的需求,可使用此方法一張一張的上傳,如果需要控制前一張上傳完才能進(jìn)行下一張的上傳,此方法亦非常適用,可以做一些成功和失敗的處理,看場(chǎng)景需要而定
為大家推薦現(xiàn)在關(guān)注度比較高的微信小程序教程一篇:《微信小程序開發(fā)教程》小編為大家精心整理的,希望喜歡。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JXTree對(duì)象,讀取外部xml文件數(shù)據(jù),生成樹的函數(shù)
JXTree對(duì)象,讀取外部xml文件數(shù)據(jù),生成樹的函數(shù)...2007-04-04利用JavaScript實(shí)現(xiàn)簡(jiǎn)單全選和全不選的思路和方法
最近開始練習(xí)js的基本操作,常常因?yàn)橐恍┬∈韬鰧?dǎo)致頁面效果無法實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于利用JavaScript實(shí)現(xiàn)簡(jiǎn)單全選和不全選的思路和方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07通過onmouseover選項(xiàng)卡實(shí)現(xiàn)img圖片的變化
這篇文章主要介紹了通過onmouseover選項(xiàng)卡實(shí)現(xiàn)img圖片的變化,需要的朋友可以參考下2014-02-02僅30行代碼實(shí)現(xiàn)Javascript中的MVC
這篇文章主要介紹了僅30行代碼實(shí)現(xiàn)Javascript中的MVC的方法,MVC的基礎(chǔ)是觀察者模式,這是實(shí)現(xiàn)model和view同步的關(guān)鍵,想要深入了解的朋友可以參考本文2016-02-02js隱式轉(zhuǎn)換的知識(shí)實(shí)例講解
在本篇文章中,小編給大家分享了關(guān)于js隱式轉(zhuǎn)換的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們參考學(xué)習(xí)下。2018-09-09微信小程序?qū)崿F(xiàn)側(cè)邊欄二級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)側(cè)邊欄二級(jí)聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07Javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊冒泡特效
這篇文章主要為大家詳細(xì)介紹了Javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊冒泡特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12