小程序之一次性上傳多個本地相片

說在前面

最近由于項目需要所以學了下小程序,也做了一些東西,隨后便有了以下的一些總結了,現在說說如何使用小程序一次性上傳多個本地相片。


問題描述

最近做項目的時候要實現一個上傳相片的功能,用了微信提供的api之后發覺很容易就做出來了,在pc端調試也沒有弊端,但是等到我用真機調試的時候就發現出問題了,問題就是在真機調試的時候無法一次性上傳多張圖片。


老規矩,以源碼為導向


photos.js

//部分參數我就不抽出了,關鍵是看實現機制
var app = getApp();
var baseUrl = app.baseUrl;
//上傳圖片的路徑
var uploadUrl = baseUrl+'pictureController/insertPic';
var array = [];
var owerId = '33aef7e0ac1b11e6af9f142d27fd7e9e';
var albumId;
var pageSize = 9;
var currentPage = 1;
var cryUrl = app.cryUrl;
Page({
  data: {
        hasMore:false,

        cryUrl:cryUrl,

        clientHeight:0,

        // 圖片布局列表(二維數組,由`albumList`計算而得)
        layoutList: [],

        // 布局列數
        layoutColumnSize: 3,

        // 是否顯示loading
        showLoading: false,

        // loading提示語
        loadingMessage: '',

        // 是否顯示toast
        showToast: false,

        // 提示消息
        toastMessage: '',

        // 是否顯示動作命令
        showActionsSheet: false,

        // 當前操作的圖片
        imageInAction: '',

        // 圖片預覽模式
        previewMode: false,

        // 當前預覽索引
     previewIndex: 0,
     images_upload: '../resources/images/camera.png',
     imageBaseUrl : baseUrl+"pictures/"
  },
  /* 函數描述:作為上傳文件時遞歸上傳的函數體體;
   * 參數描述: 
   * filePaths是文件路徑數組
   * successUp是成功上傳的個數
   * failUp是上傳失敗的個數
   * i是文件路徑數組的指標
   * length是文件路徑數組的長度
   */      
    uploadDIY(filePaths,successUp,failUp,i,length){
      wx.uploadFile({
                    url: uploadUrl, 
                    filePath: filePaths[i],
                    name: 'fileData',
                    formData:{
                      'pictureUid': owerId,
                      'pictureAid': albumId
                    },
                    success: (resp) => {
                        successUp++;
                    },
                    fail: (res) => {
                        failUp ++;
                    },
                    complete: () => {
                        i ++;                        
                        if(i == length)
                        {                      
                          this.showToast('總共'+successUp+'張上傳成功,'+failUp+'張上傳失??!');
                        }
                        else
                        {  //遞歸調用uploadDIY函數
                            this.uploadDIY(filePaths,successUp,failUp,i,length);
                        }
                    },
                });
  },
  uploadImage:function(e){
    wx.chooseImage({
        count: 9,
            sizeType: ['original', 'compressed'],
            sourceType: ['album', 'camera'],
            success: (res) => {
   
                var successUp = 0; //成功個數
                var failUp = 0; //失敗個數
                var length = res.tempFilePaths.length; //總共個數
                var i = 0; //第幾個
               this.uploadDIY(res.tempFilePaths,successUp,failUp,i,length);
            },        
    });
  }
})

那么如何使用呢?

修改了uploadUrl之后,直接調用 uploadImage 函數即可。


我使用用遞歸的方式來多次上傳選中的圖片的原因?

小程序的官方文檔有提到, wx.uploadFile一次只能上傳一張圖片,而我用了for循環多次上傳的在pc端調試可以上傳多張成功,但是在真機調試的時候卻還是只能上傳一張,于是我便投機在上傳成功之后再次調取wx.uploadFile進行上傳,結果成功了,為了代碼整潔我便用了遞歸的方式進行調用。


Note:發布的這些文章全都是自己邊學邊總結的,難免有紕漏,如果發現有不足的地方,希望可以指出來,一起學習咯,么么噠。
開源愛好者,相信開源的力量必將改變世界:
** osc :** https://git.oschina.net/xi_fan
github: https://github.com/wiatingpub

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,637評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,555評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,629評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,976評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,139評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,686評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,411評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,641評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,820評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,362評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,604評論 2 380

推薦閱讀更多精彩內容

  • 給提問的開發者的建議:提問之前先查詢 文檔、通過社區右上角搜索搜索已經存在的問題。 寫一個簡明扼要的標題,并且...
    極樂叔閱讀 13,551評論 0 3
  • 什么是微信小程序 騰訊公司于2016年9月21日開始微信小程序內測,一時間小程序的討論熱度不斷。網絡上流傳一張張小...
    centuryscr閱讀 5,608評論 0 3
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,759評論 25 708
  • 傍晚的六點半到七點和清晨的六點半到七點,這期間,白天黑夜漸漸交替。 你會感到無助和難過,抓不住白天,也留不住黑夜。...
    琦琦羅閱讀 150評論 0 0
  • 誰的碧血染紅了你 像是火一樣的云霞 在水面驚然生起 無聲也無語 靜默著 靜默著 你獨有的呼吸 世間繁華 與你無關 ...
    桂之華閱讀 378評論 4 5