微信小程序在for循环中下载大量照片

根据数组中的文件路径,循环下载文件,一个文件路径加上不同的后缀名变成多个路径,而不一定每个路径都是有文件的

async downloadimg(){
    wx.showLoading({
      title: '下载中',
    })
    var i,j
    const fs= wx.getFileSystemManager();
    for(i=0;i<this.data.subnum;i++)
    {
      if(this.data.array[i].fileSrc){
        try{
          // 创建文件夹
          fs.mkdirSync(wx.env.USER_DATA_PATH+'/'+this.data.array[i].name,false)
          // 创建网点目录成功
            for(j=0;j<9;j++){
              // 下载文件夹
              console.log('下载记录为',i,'下载第',j);
              await wx.cloud.downloadFile({
                fileID: this.data.array[i].fileSrc+this.data.imgname[j]
              }).then(res => {
                // console.log(res.tempFilePath)
              //  保存照片
                wx.getFileSystemManager().saveFile({
                  tempFilePath:res.tempFilePath,
                  filePath:wx.env.USER_DATA_PATH+'/'+this.data.array[i].name+'/'+this.data.imgname[j],
                  success(res){console.log('保存在',res);},
                  fail(err){console.log('保存失败',err);}
                })
              }).catch(()=>{console.log('不存在');})
            }
          } catch(e) { console.error('创建或下载中出错',e)}                
      }
    }
    wx.hideLoading()
    wx.showToast({
      title: '下载完成',
    })
  },

catch和fail一开始为了整洁一点没有写,结果一旦找不到照片下载不下来代码就停了。后来才知道是少写了这个的原因。如果想要照片一直下载,找不到当前的照片就继续下载下一个,就需要写完整

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值