微信小程序多张图片上传

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

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

示例代码是这样的:

wx.chooseImage({
  success: function(res) {
    var tempFilePaths = res.tempFilePaths
    wx.uploadFile({
      url: ‘http://example.weixin.qq.com/upload‘, //仅为示例,非真实的接口地址
      filePath: tempFilePaths[0],
      name: ‘file‘,
      formData:{
        ‘user‘: ‘test‘
      },
      success: function(res){
        var data = res.data
        //do something
      }
    })
  }
})

这里的示例代码,是选择图片,然后上传选中的图片中的第一个图片;

现在开始写多张图片上传的例子

首先,我们还是要选择图片

wx.chooseImage({
  success: function(res) {
    var tempFilePaths = res.tempFilePaths;//这里是选好的图片的地址,是一个数组

  }
})

然后在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: ‘fileData‘,
            formData:null,
            success: (resp) => {
               success++;
               console.log(resp)
                console.log(i);
                //这里可能有BUG,失败也会执行这里
            },
            fail: (res) => {
                fail++;
                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;
      wx.chooseImage({
           count: 9-pic.length, // 最多可以选择的图片张数,默认9
           sizeType: [‘original‘, ‘compressed‘], // original 原图,compressed 压缩图,默认二者都有
           sourceType: [‘album‘, ‘camera‘], // album 从相册选图,camera 使用相机,默认二者都有
           success: function(res){
           var imgsrc=res.tempFilePaths;
            that.setData({
                pics:imgsrc
            });
      },
      fail: function() {
        // fail
      },
      complete: function() {
        // complete
      }
    })

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

  }

})

完结。

想了解更多的小程序的知识请添加微信小程序开发交流群:368506119

时间: 2024-08-07 08:37:37

微信小程序多张图片上传的相关文章

微信小程序wx.uploadFile 上传文件 的两个坑

fileUpload: function (tempFilePath) { var that = this;//坑1: this需要这么处理 wx.uploadFile({ url: url地址, //app.ai_api.File.file filePath: tempFilePath, //文件路径 这里是mp3文件 name: 'file', //随意 header: { 'Content-Type': 'multipart/form-data', 'Authorization': wx.

【微信小程序】---线上环境搭建

一.前言 通常我们在本地电脑上开发微信小程序,调用和访问小程序会有很多问题.特别是在配有自己后端的情况下,我们通过真机访问我们的小程序会出现不可访问的问题 二.线上环境搭建 在这里我们主要以腾讯云给大家做演示 1.注册并登陆腾讯云   https://cloud.tencent.com/ 2.上传代码 a.把客户端代码和服务端代码放置在微信小程序目录下 b.将客户端代码放置到client文件加中,服务端代码放置在server文件加中 c.把原微信小程序project.config.js文件转移到

ESA2GJK1DH1K微信小程序篇: 测试微信小程序扫描Air202上面的二维码绑定设备,并通过MQTT控制设备

前言 暂无 实现功能概要 微信小程序通过扫描GPRS上的二维码,绑定GPRS设备.然后使用小程序通过GPRS远程控制开发板上的继电器, 远程显示单片机采集的温湿度数据. 一,硬件程序 硬件程序采用基础篇 https://www.cnblogs.com/yangfengwu/p/11762609.html  的底层硬件程序 该源码已经拷贝到了当前测试目录 二,微信小程序源码 测试准备工作 一,下载单片机程序(请自行下载) 二,打开微信小程序软件,导入本节工程 三,把小程序安装到手机运行 四,调整波

小程序之图片上传

//调用相册等选择图片,得到图片的相对路劲up_img: function () { var that = this; wx.chooseImage({ count: 1, // 默认9 sizeType: ['compressed'], sourceType: ['album', 'camera'], success: function (res) { var tempFilePaths = res.tempFilePaths; upload(that, tempFilePaths); } }

微信小程序:bindtap方法传参

1.wxml <view bindtap="pay_again" data-name="{{orderList.jid}}" data-fee="{{orderList.act_fee}}" data-mobile="{{orderList.p_phone}}" data-act="{{orderList.act_name}}" class="operating f_r webkit-box

微信小程序页面跳转传参

1.传递参数方法 使用navigatior组件 <navigator url="/pages/pull/pull?title=lalla&name=cc" hover-class="navigator-hover">跳转到新页面</navigator> 使用跳转API wx.navigateTo({ url: '/pages/pull/pull?name=mc&age=22' }) 2.接收参数方法 在页面的onLoad方法的

微信小程序页面跳转传参数

发送方 let data = event.currentTarget.dataset.id(要发送的参数) wx.navigateTo({ url: '../iteminfo/iteminfo?id=' + encodeURI(JSON.stringify(data)), }) //encodeURI:对传递的数据编码 (怕传递的数据被解析成代码) 接收方 //生命周期函数--监听页面加载 options接收传递过来的数据 data: { inid:"" }, onLoad: func

微信小程序--图片相关问题合辑

图片上传相关文章 微信小程序多张图片上传功能 微信小程序开发(二)图片上传 微信小程序上传一或多张图片 微信小程序实现选择图片九宫格带预览 ETL:微信小程序之图片上传 微信小程序wx.previewImage预览图片 微信小程序之预览图片 小程序开发:上传图片到腾讯云 .NET开发微信小程序-上传图片到服务器 微信小程序本地图片处理--按屏幕尺寸插入图片 [微信小程序]上传图片到阿里云OSS Python Flask小程序文件(图片)上传技巧 小程序图片上传阿里OSS使用方法 微信小程序问题汇

一个小时快速搭建微信小程序

「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试.可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面).本以为没有 AppID 这个月就与小程序无缘了,庆幸的是微信这两天发布了正式版开发者工具,无需内测邀请也可以尝鲜了. 因此也就有了我与「小程序」的初体验,而我的感受只有一个字--爽! 选择哪个「小程序」Demo? 在知名同性交友网站 Github 上,「小程序」的 Demo 不少,但是大多只是简单的 API 演示,有的甚至直接把页面数据写在了 json