• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信小程序 > 案例分享--小程序图片分组上传

案例分享--小程序图片分组上传

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-11-30

匿名通过本文主要向大家介绍了小程序图片分组上传等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
在开发小程中,在一个项目需求需要上传多组照片,上传页面部分截图如下:

1.png

因为分组比较多,不可能每一组写一个布局,因此使用for循环进行图片的选择显示,首先定义数据

fileList: [{
      name: "驾驶证",
      cid:"0",
      picimage:[],
    }, {
        name: "整车外观",
        cid: "1",
        picimage: [],
      }, {
        name: "整车铭牌",
        cid: "2",
        picimage: [],
    }, {
        name: "发动机全貌",
        cid: "3",
        picimage: [],
    },{
        name: "增压器全貌",
        cid: "4",
        picimage: [],
    }]

页面布局代码部分就不贴出了,使用循环遇到的问题有:1.调用同一个wx.chooseImage()会出现第二章覆盖第一张;2.所有组同时没法区分。解决办法:1.当选择图片时,将图片concat到数组中去。2.为每一个组设置一个id,当点击选择图片按钮时将id传过去,chooseImage根据所接收到的id选择将图片显示在哪个分组,关键代码如下:

chooseWxImage: function (e) {
    var _this = this;
    var id = e.currentTarget.dataset.picid;
    console.log("id-----" + id)
    if (_this.data.fileList[id].picimage.length>1){
      wx.showModal({
        content: '你最多只能选择2张照片',
        showCancel:false,
      })
    }else{
    wx.chooseImage({
      count:2,
      sizeType: "compressed",
      sourceType: ['album', 'camera'],
      success: function (res) {
        var arr = _this.data.fileList[id].picimage;
        for (let i in res.tempFilePaths) {
          arr.push(res.tempFilePaths[i])
        }
        _this.setData({
          fileList: _this.data.fileList
        })
      }
    })}
  },

上传部分,因为小程序只能一张一张上传,因此需要对uploading方法进行处理,先将所有图片数组放到一个集合中,然后对集合进行遍历,以数组为单位进行上传。

upload: function (e) {
    var that = this;
    var fileList = that.data.fileList;
    var tempath = [] ;//图片地址,将所有图片数组放进去
    for(let i in fileList){
      tempath.push(fileList[i].picimage)
      }
    
    console.log("tempimage"+tempath)
    wx.showLoading({
      title: '上传中...',
    })
      for (let j in tempath) {
        requestUtil.uploadimg({//uploading为封装的一个方法
          url: '上传地址',
          path: tempath[j],//遍历地址,将每个数组循环上传
          })
      wx.hideLoading();
      wx.showToast({
        title: '上传成功!',
        icon:'success',
        duration:'2500',
      })
      }
    }






//多张图片上传,这部分代码是参考网上的,使用当中遇到一个bug就是如果传过来的数组为空的话,就会卡死小程序,因此需要加上判断数组不能为空
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: data.formData,//这里是上传图片时一起上传的数据
		success: (resp) => {
      if (resp.statusCode == 200) {
        success++;//图片上传成功,图片上传成功的变量+1
			  console.log(resp)
			  console.log(i);
      }
		},
		fail: (res) => {
			fail++;//图片上传失败,图片上传失败的变量+1
      console.log(data.path)
			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);
			}
		}
	});
}

相关推荐:

微信小程序开发上传图片功能实例分享

CodeIgniter上传图片成功的全部过程分享

以上就是案例分享--小程序图片分组上传的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-11-30微信小程序图表插件(wx-charts)实例代码
  • 2018-11-30微信小程序 高德地图SDK的解析
  • 2018-11-30微信小程序中app.json配置的代码解析
  • 2018-11-30微信小程序购物商城系统开发所需工具
  • 2018-11-30微信小程序微信支付接入开发
  • 2018-11-23微信小程序云开发服务端数据库API update
  • 2018-11-30微信小程序中表单提交和验证以及正则表达式的用法介绍(附代码)
  • 2018-11-30微信小程序开发技术总结
  • 2018-11-30微信小程序左滑删除效果的实现代码
  • 2018-11-30小程序中顶部导航栏示例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • [C#小程序]命令行小程序之你要买大杯小杯还是中杯的实现代码
    • 微信小程序scroll-view组件详解
    • 微信小程序 使用canvas制作K线实例详解
    • 解读和分析微信小程序组件:五、text文本
    • 微信小程序表单组件多行输入框 textarea
    • 微信小程序 modal详解及实例代码
    • 微信小程序聊天室demo代码
    • 微信小程序验证码如何实现?(源代码)
    • 微信小程序如何实现美团菜单
    • 详解优化你的微信小程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有