第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

微信小程序多張圖片上傳

標(biāo)簽:
JavaScript

微信小程序上传图片每次只能上传一张,所有很多朋友就会问想要多张图片上传怎么办?

这里使用递归,当上传完一张图片后重新执行这个函数,直到所有的图片都上传完成后,就不再调用该函数。

首先,我们来看一看wx.chooseImage(object)和wx.uploadFile(OBJECT)这两个api

https://img1.sycdn.imooc.com//5b0039ec0001877312760792.jpg

https://img1.sycdn.imooc.com//5b0039ed00017af711340774.jpg


首先来写选取图片的代码

wx.chooseImage({
     count: 9-pics.length, // 最多可以选择的图片张数,默认9
     sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
     sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
     success: function(res){           
       var imgsrc=res.tempFilePaths; 
       pics=pics.concat(imgsrc);  
       that.setData({
         pics:pics
       });
     },
     fail: function() {        
     // fail      
     },
     complete: function() {        
     // complete      
     }
    })

然后在app.js中写一个多张图片上传的方法,后面引入,你也可以写在一个JS文件中,后面引入:

//多张图片上传
    function uploadimg(data){     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:null,//这里是上传图片时一起上传的数据
            success:(resp)=>{
               success++;//图片上传成功,图片上传成功的变量+1
               console.log(resp)
               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);
                }
            }
        });
    }

多张图片上传的方法写好了,下面就是引用:

var app=getApp();
Page({
   data:{
      pics:[]
   },
   choose:function(){//这里是选取图片的方法
      var that=this,
      pics=this.data.pics;

      wx.chooseImage({
        count: 9-pics.length, // 最多可以选择的图片张数,默认9
        sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
        sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
        success: function(res){           
        var imgsrc=res.tempFilePaths; 
        pics=pics.concat(imgsrc);  
        that.setData({
          pics:pics
        });
      },
      fail:function() {        
       // fail      
      },
      complete:function() {        
      // complete      
      }
    })

   },
   uploadimg:function(){//这里触发图片上传的方法
       var pics=this.data.pics;
       app.uploadimg({
         url:'https://........',//这里是你图片上传的接口
         path:pics//这里是选取的图片的地址数组        
       });
     },
   onLoad:function(options){

  }

})

一个简单的PHP接收图片代码,供测试用:

<?php 
    $imgname = $_FILES['file']['name'];    
    $tmp = $_FILES['file']['tmp_name'];    
    $filepath = 'now/';//记得要自己创建这个文件夹    
    if(move_uploaded_file($tmp,$filepath.$imgname.".png")){        
        echo "上传成功";
    }else{        
    echo "上传失败";
    } 
    ?>

完结。


點(diǎn)擊查看更多內(nèi)容
7人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消