微信小程序多张图片上传方法

选择图片的代码如下:

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接收图片代码,供测试用:

文章来源:

作者:西江无月
链接:https://www.imooc.com/article/30127
来源:慕课网

 

 

 

 

你可能感兴趣的:(前端开发知识,微信小程序)