关于文件上传wx.uploadFile的用法?
发布于 5 年前 作者 mingwang 2304 次浏览 来自 问答
for(var i=0;i<len;i++){
          var $path=$files[i].path;
          wx.uploadFile({
            url:app.globalData.api+"&r=util.uploader.upload&file=file",
            filePath:$path,
            name:"file",//规定的key值
            header: {
              "Content-Type""multipart/form-data"
            },
            success:function(res){
              console.log(JSON.parse(res.data));
              console.log(JSON.parse(res.data).files[0].url)
              console.log(JSON.parse(res.data).files[0].filename)
              successNum++;
              console.log(successNum)
              arr.push({
                url:JSON.parse(res.data).files[0].url,
                filename:JSON.parse(res.data).files[0].filename
              });
              console.log(arr.length);
              console.log(arr)
              if(arr.length==successNum){
                console.log(that.data.id)
                o.post("member/cart/addsd",{
                  id:that.data.id,//会员id
                  files:arr,//文件列表
                  title:that.data.id.title,//原产品详情
                  gid:that.data.gid,//原产品id
                },function(res){
                  console.log(res);
                  if(res==1){
                    wx.switchTab({
                      url:"/pages/member/cart/index"
                    });
                  }
                })
                
                /*
                wx.navigateTo({
                  url:"/pages/member/cart/index?id="+that.data.id
                })
                */
              }else{
                console.log("没有上传完成")
              }
            }
          })
        };

d我现在要上传多个文件,但是wx.uploadFile  api只能上传一个文件,于是我便用了循环上传写法,但是实际操作中,比如上传两张图片,第一张图片会自动多上传一次
 咋处理
3 回复

这里的arr和successNum都是同时递增,所以条件大部分情况下是成立的,把arr.length换成len试试

建议用Promise.all更好。

wx.chooseImage 使用这个可以上传9张图片

目前文件只能上传一个,不支持多个。

如果你只上传图片,可以更改为 wx.chooseImage

回到顶部