微信小程序多张图片上传功能

2017-10-15 释然 前端技术资源

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里


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

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

示例代码是这样的:

  1. 	
  2. wx.chooseImage({
  3. success: function(res) {
  4. var tempFilePaths = res.tempFilePaths
  5. wx.uploadFile({
  6. url: 'http://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
  7. filePath: tempFilePaths[0],
  8. name: 'file',
  9. formData:{
  10. 'user': 'test'
  11. },
  12. success: function(res){
  13. var data = res.data
  14. //do something
  15. }
  16. })
  17. }
  18. })
  19. 这里的示例代码,是选择图片,然后上传选中的图片中的第一个图片;

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

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

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

然后在app.js中写一个多张图片上传的方法,后面引入,你也可以写在一个JS文件中,后面引入:

	
  1. //多张图片上传
  2. function uploadimg(data){
  3. var that=this,
  4. i=data.i?data.i:0,
  5. success=data.success?data.success:0,
  6. fail=data.fail?data.fail:0;
  7. wx.uploadFile({
  8. url: data.url,
  9. filePath: data.path[i],
  10. name: 'fileData',
  11. formData:null,
  12. success: (resp) => {
  13. success++;
  14. console.log(resp)
  15. console.log(i);
  16. //这里可能有BUG,失败也会执行这里
  17. },
  18. fail: (res) => {
  19. fail++;
  20. console.log('fail:'+i+"fail:"+fail);
  21. },
  22. complete: () => {
  23. console.log(i);
  24. i++;
  25. if(i==data.path.length){ //当图片传完时,停止调用
  26. console.log('执行完毕');
  27. console.log('成功:'+success+" 失败:"+fail);
  28. }else{//若图片还没有传完,则继续调用函数
  29. console.log(i);
  30. data.i=i;
  31. data.success=success;
  32. data.fail=fail;
  33. that.uploadimg(data);
  34. }
  35. }
  36. });
  37. }

多张图片上传的方法写好了,下面就是引用:

	
  1. var app=getApp();
  2. Page({
  3. data:{
  4. pics:[]
  5. },
  6. choose:function(){//这里是选取图片的方法
  7. var that=this;
  8. wx.chooseImage({
  9. count: 9-pic.length, // 最多可以选择的图片张数,默认9
  10. sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
  11. sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
  12. success: function(res){
  13. var imgsrc=res.tempFilePaths;
  14. that.setData({
  15. pics:imgsrc
  16. });
  17. },
  18. fail: function() {
  19. // fail
  20. },
  21. complete: function() {
  22. // complete
  23. }
  24. })
  25. },
  26. uploadimg:function(){//这里触发图片上传的方法
  27. var pics=this.data.pics;
  28. app.uploadimg({
  29. url:'https://........',//这里是你图片上传的接口
  30. path:pics//这里是选取的图片的地址数组
  31. });
  32. },
  33. onLoad:function(options){
  34. }
  35. })
蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


标签: 微信小程序多张图片上传功能


Powered by emlog 京ICP备12006971号-1 sitemap