微信小程序?qū)崿F(xiàn)多張圖片上傳功能
本文實(shí)例為大家分享了微信小程序?qū)崿F(xiàn)多張圖片上傳的具體代碼,供大家參考,具體內(nèi)容如下
Page({ /** * 頁面的初始數(shù)據(jù) */ data: { pics: [], count: 9, //上傳圖片最大數(shù)量 // showImgUrl: "", //路徑拼接,一般上傳返回的都是文件名, uploadImgUrl: 'https://xxx/UploadHandler.ashx', //圖片的上傳的路徑 detailPics: [], //上傳的結(jié)果圖片集合 }, selectimages() { var that = this; var detailPics = that.data.detailPics; if (detailPics.length >= that.data.count) { wx.showToast({ title: '最多選擇' + that.data.count + '張!', }) return; } wx.chooseImage({ count: that.data.count, // 最多可以選擇的圖片張數(shù),默認(rèn)9 sizeType: ['original', 'compressed'], // original 原圖,compressed 壓縮圖,默認(rèn)二者都有 sourceType: ['album', 'camera'], // album 從相冊(cè)選圖,camera 使用相機(jī),默認(rèn)二者都有 success: function(res) { var imgs = res.tempFilePaths; for (var i = 0; i < imgs.length; i++) { that.data.pics.push(imgs[i]) } that.setData({ pics: that.data.pics }) console.log(that.data.pics) that.uploadimg({ url: that.data.uploadImgUrl, //這里是你圖片上傳的接口 path: that.data.pics, //這里是選取的圖片的地址數(shù)組 }); }, }) }, //多張圖片上傳 uploadimg: function(data) { wx.showLoading({ title: '上傳圖片中...', mask: true, }) 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: 'fileData', formData: null, success: (resp) => { wx.hideLoading(); success++; var str = resp.data //返回的結(jié)果,可能不同項(xiàng)目結(jié)果不一樣 var pic = JSON.parse(str); var pic_name = pic.url; var detailPics = that.data.detailPics; detailPics.push(pic_name) that.setData({ detailPics: detailPics }) }, fail: (res) => { fail++; console.log('fail:' + i + "fail:" + fail); }, complete: () => { i++; if (i == data.path.length) { //當(dāng)圖片傳完時(shí),停止調(diào)用 that.send() console.log('執(zhí)行完畢'); console.log('成功:' + success + " 失?。? + fail); var myEventDetail = { picsList: that.data.detailPics } // detail對(duì)象,提供給事件監(jiān)聽函數(shù) var myEventOption = {} // 觸發(fā)事件的選項(xiàng) that.triggerEvent('myevent', myEventDetail, myEventOption) //結(jié)果返回調(diào)用的頁面 } else { //若圖片還沒有傳完,則繼續(xù)調(diào)用函數(shù) data.i = i; data.success = success; data.fail = fail; that.uploadimg(data); //遞歸,回調(diào)自己 } } }); }, })
效果圖:
為大家推薦現(xiàn)在關(guān)注度比較高的微信小程序教程一篇:《微信小程序開發(fā)教程》小編為大家精心整理的,希望喜歡。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js+html5實(shí)現(xiàn)canvas繪制網(wǎng)頁時(shí)鐘的方法
這篇文章主要介紹了js+html5實(shí)現(xiàn)canvas繪制網(wǎng)頁時(shí)鐘的方法,涉及html5圖形繪制的基礎(chǔ)技巧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05如何用CocosCreator實(shí)現(xiàn)射擊小游戲
這篇文章主要介紹了如何用CocosCreator實(shí)現(xiàn)射擊小游戲,此游戲難度不大,僅作為入門的練手小游戲,一小時(shí)就能完成,里面用到的知識(shí)很常用,喜歡游戲的同學(xué),可以參考下2021-04-04Javascript 實(shí)現(xiàn)計(jì)算器時(shí)間功能詳解及實(shí)例(二)
這篇文章主要介紹了Javascript 實(shí)現(xiàn)計(jì)算器時(shí)間功能詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-01-01利用Query+bootstrap和js兩種方式實(shí)現(xiàn)日期選擇器
日期選擇器在我們平時(shí)開發(fā)的時(shí)候經(jīng)常要用到,下面這篇文章主要給大家介紹了利用Query+bootstrap和js這兩種方式實(shí)現(xiàn)日期選擇器的方法,文中兩種方法都給出了詳細(xì)的示例代碼,有需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01使用Promise和JavaScript有效處理1000個(gè)請(qǐng)求的方法
在現(xiàn)代Web開發(fā)中,處理高并發(fā)請(qǐng)求是一個(gè)常見的挑戰(zhàn),當(dāng)我們需要從服務(wù)器獲取大量數(shù)據(jù)或執(zhí)行多個(gè)異步任務(wù)時(shí),如何有效地管理請(qǐng)求的并發(fā)性和性能變得至關(guān)重要,本文將介紹如何使用Promise和JavaScript來管理高并發(fā)請(qǐng)求,需要的朋友可以參考下2023-09-09js分解url參數(shù)(面向?qū)ο?極簡(jiǎn)主義法應(yīng)用)
剛看到笑看風(fēng)云寫的JavaScript面向?qū)ο?極簡(jiǎn)主義法)和一個(gè)分解url參數(shù)面試題,我作了一下修改,記錄下來2012-08-08JS驗(yàn)證IP,子網(wǎng)掩碼,網(wǎng)關(guān)和MAC的方法
這篇文章主要介紹了JS驗(yàn)證IP,子網(wǎng)掩碼,網(wǎng)關(guān)和MAC的方法,涉及javascript正則表達(dá)式的相關(guān)使用技巧,需要的朋友可以參考下2015-07-07three.js利用卷積法如何實(shí)現(xiàn)物體描邊效果
這篇文章主要給大家介紹了關(guān)于three.js利用卷積法如何實(shí)現(xiàn)物體描邊效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用three.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11