为了使代码体积小  我这里将多图上传 封装到单独的一个js 页面的js调用他

我们看firhealth.js文件内容

  1. // pages/home/home.js
  2. var upload = require('../../style/upload.js');
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. //跳转页面
  8. btn:function(e){
  9. wx.navigateTo({
  10. url: '/pages/sechealth/sechealth',
  11. })
  12. },
  13. tijian:function(e){
  14. var that=this;
  15. upload.Much("https://wx.caoman.net/WXdiagnos/MuchUpload",function(res){
  16.  
  17. var obj=JSON.parse(res.data);
  18. console.log(obj);
  19. var url="https://wx.caoman.net"+obj.url;
  20. that.setData({
  21. tijianPic: that.data.tijianPic.concat(url),
  22. imglist:1
  23. });
  24. console.log(that.data.tijianPic);
  25. })
  26. },
  27. data: {
  28. //面部图片路径
  29. facePic:[],
  30. //体检图片路径
  31. tijianPic:[],
  32. imglist:0,///控制体检报告是否显示
  33.  
  34. },
  35.  
  36. /**
  37. * 生命周期函数--监听页面加载
  38. */
  39. onLoad: function (options) {
  40.  
  41. },
  42.  
  43. /**
  44. * 生命周期函数--监听页面初次渲染完成
  45. */
  46. onReady: function () {
  47.  
  48. },
  49.  
  50. /**
  51. * 生命周期函数--监听页面显示
  52. */
  53. onShow: function () {
  54.  
  55. },
  56.  
  57. /**
  58. * 生命周期函数--监听页面隐藏
  59. */
  60. onHide: function () {
  61.  
  62. },
  63.  
  64. /**
  65. * 生命周期函数--监听页面卸载
  66. */
  67. onUnload: function () {
  68.  
  69. },
  70.  
  71. /**
  72. * 页面相关事件处理函数--监听用户下拉动作
  73. */
  74. onPullDownRefresh: function () {
  75.  
  76. },
  77.  
  78. /**
  79. * 页面上拉触底事件的处理函数
  80. */
  81. onReachBottom: function () {
  82.  
  83. },
  84.  
  85. /**
  86. * 用户点击右上角分享
  87. */
  88. onShareAppMessage: function () {
  89.  
  90. }
  91. })

代码 tianjia  函数  为点击时触发的函数调用了 upload.js里边的函数  下面我们看 upload.js 代码

  1. //上传一张图片
  2. var upload=({
  3. Single:function(Funurl,fn){
  4. wx.chooseImage({
  5. count:1, ///最多可以选择一张图片
  6. sizeType:['original','compressed'],//原图或压缩图
  7. sourceType:['album','camera'],//图片来源
  8. success: function(res) {
  9. const tempFilePaths=res.tempFilePaths;//相当于src路径
  10. //console.log(tempFilePaths);
  11. wx.uploadFile({
  12. header:{
  13. "Content-Type":"multipart/form-data"
  14. },
  15. name:'file',
  16. url:Funurl,
  17. filePath: tempFilePaths[0],
  18. success(res){
  19. fn(res);
  20. }
  21. })
  22. },
  23. })
  24. },
  25. //上传多张图片
  26. Much:function(Funurl,fn){
  27. var list=new Array();
  28. wx.chooseImage({
  29. count:9,//最多可以选择9张图
  30. sizeType: ['original','compressed'],
  31. sourceType:['album','camera'],
  32. success: function(res) {
  33. const tempFilePaths=res.tempFilePaths;
  34. for (var i = 0; i < tempFilePaths.length;i++){
  35. wx.uploadFile({
  36. url: Funurl,
  37. name: 'file',
  38. filePath: tempFilePaths[i],//第几张图片
  39. header: {
  40. "Content-Type": "multipart/form-data"
  41. },
  42. success(res) {
  43. fn(res);
  44. },
  45. fail(res) {
  46. console.log(res.data);
  47. }
  48. })
  49. }
  50. },
  51. })
  52. }
  53. })
  54. module.exports=upload;

在upload.js中  我们看到页面调用upload.js的函数了,我们会发现  该函数使用的是 for 将文件循环的上传了,,我在测试时发现 上传文件是异步执行的  这是 在循环完 在调用回调函数,发现回调函数的值是空的,为什么呢,

因为js的异步执行不会阻塞当前线程 当for循环执行完了  第一个上传文件还没有执行完,当函数回调成功后,里边的上传文件异步才依次执行完毕,  我们知道  数组是可以追加的      这时可以让函数回调多次   依次 给

  1. tijianPic 变量追加数组值 当执行完后 我们在console.log() 发现 上传文件了三次 在回调后的代码块里输出 也是三次 那么三次 我们不停的在数组上追加 即上传了多个文件 返回的每个路径我们都存到变量
  2.  
  3. 如果代码还解决不了 请仔细阅读 和测试 上部分代码为 实践项目中部分代码

微信小程序 多图上传解决方案的更多相关文章

  1. 微信小程序多图上传/朋友圈传图效果【附完整源码】

    效果图 部分源代码 js文件: var uploadPicture = require('../Frameworks/common.js') //获取应用实例 const app = getApp() ...

  2. 微信小程序多张图片上传

    微信小程序上传图片每次只能上传一张,所有很多朋友就会问想要多张图片上传怎么办? 首先,我们来看一看wx.chooseImage(object)和wx.uploadFile(OBJECT)这两个个api ...

  3. [转]微信小程序实现图片上传功能

    本文转自:http://blog.csdn.net/feter1992/article/details/77877659 前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何 ...

  4. nodeJs实现微信小程序的图片上传

    今天我来介绍一下nodejs如何实现保存微信小程序传过来的图片及其返回 首先wx.uploadFile绝大部分时候是配合wx.chooseImage一起出现的,毕竟选择好了图片,再统一上传是实现用户图 ...

  5. 微信小程序实现图片上传功能

    前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...

  6. 微信小程序--实现图片上传

    前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...

  7. 微信小程序中图片上传阿里云Oss

    本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发.最近工作遇到一个小问题. 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意去记录一下. 第一步:配置阿里云地址: 我 ...

  8. [组件封装]微信小程序-图片批量上传照片墙

    描述 批量上传图片, 可设置最大上传个数, 可删除, 可设置默认值. 效果 源码 pictures-wall.wxml <view class="picturesWall"& ...

  9. 微信小程序实现图片上传,预览,删除

    wxml: <view class='imgBox'> <image class='imgList' wx:for="{{imgs}}" wx:for-item= ...

随机推荐

  1. Java Colections 集合类 —— List、ArrayList、Set(HashSet)

    0. List<T> 是一个接口 该接口定义的高级成员函数有: contains() ⇒ 是否包含: String[] people; List names = Arrays.asList ...

  2. 软件开发 —— 重构(refactor)

    0. 代码坏味道 Large Class,过大的类:Large method,过长的(成员)函数: 1. 基本内涵 在不改变代码外在行为的前提下对代码做出修改,以改进代码的内部结构的过程. -- &l ...

  3. hiho一下 第172周

    题目1 : Matrix Sum 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 You are given an N × N matrix. At the beginn ...

  4. Win8.1应用开发之适配器模式(C#实现)

    实际上适配器模式是用于解耦.设想一下我们的程序模块A在与模块B打交道时,需要在许多地方多次使用B中某个类的方法,而负责开发B的程序猿Tom还未完全实现该类,会随时更改该类中的方法,那么当Tom在修改时 ...

  5. 关于maven-基本

    笔记 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object ...

  6. C++基础 (9) 第九天 编译器对模板类的二次编译 类模板 自定义数组类

    1 昨日回顾 2 编译器对于模板的二次编译 写一个模板函数 然后进行调用 g++ template.cpp -o template // 汇编 g++ -S template.cpp –o templ ...

  7. Project Euler 24 Lexicographic permutations( 康拓逆展开 )

    题意: 排列指的是将一组物体进行有顺序的放置.例如,3124是数字1.2.3.4的一个排列.如果把所有排列按照数字大小或字母先后进行排序,我们称之为字典序排列.0.1.2的字典序排列是:012 021 ...

  8. [HEOI2013]Eden 的新背包问题

    数据极水,不加优化的多重背包都能过...早知道考试的时候不加奇奇怪怪的卡常优化,卡了45分... 就是从前往后做一个多重背包,从后往前再做一个,问的时候就暴力求一下跳过这个的最佳方案... #incl ...

  9. Mybaitis-generator生成数据对象和时间的优化

    1.本章涉及到知识点,Mybaitis-generator生成数据对象和时间,xml的引用*.properties 外部文件(在这之前必须导入了mybaitis的核心架包) A.在pom.xml的案例 ...

  10. apache https部署

    1.生成证书,直接在阿里云或腾讯云中生成此处不再介绍 2.在httpd.conf中取消#LoadModule ssl_module modules/mod_ssl.so的注释 3.开启httpd-ss ...