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

我们看firhealth.js文件内容

// pages/home/home.js
var upload = require('../../style/upload.js');
Page({
/**
* 页面的初始数据
*/
//跳转页面
btn:function(e){
wx.navigateTo({
url: '/pages/sechealth/sechealth',
})
},
tijian:function(e){
var that=this;
upload.Much("https://wx.caoman.net/WXdiagnos/MuchUpload",function(res){ var obj=JSON.parse(res.data);
console.log(obj);
var url="https://wx.caoman.net"+obj.url;
that.setData({
tijianPic: that.data.tijianPic.concat(url),
imglist:1
});
console.log(that.data.tijianPic);
})
},
data: {
//面部图片路径
facePic:[],
//体检图片路径
tijianPic:[],
imglist:0,///控制体检报告是否显示 }, /**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) { }, /**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () { }, /**
* 生命周期函数--监听页面显示
*/
onShow: function () { }, /**
* 生命周期函数--监听页面隐藏
*/
onHide: function () { }, /**
* 生命周期函数--监听页面卸载
*/
onUnload: function () { }, /**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () { }, /**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () { }, /**
* 用户点击右上角分享
*/
onShareAppMessage: function () { }
})

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

//上传一张图片
var upload=({
Single:function(Funurl,fn){
wx.chooseImage({
count:1, ///最多可以选择一张图片
sizeType:['original','compressed'],//原图或压缩图
sourceType:['album','camera'],//图片来源
success: function(res) {
const tempFilePaths=res.tempFilePaths;//相当于src路径
//console.log(tempFilePaths);
wx.uploadFile({
header:{
"Content-Type":"multipart/form-data"
},
name:'file',
url:Funurl,
filePath: tempFilePaths[0],
success(res){
fn(res);
}
})
},
})
},
//上传多张图片
Much:function(Funurl,fn){
var list=new Array();
wx.chooseImage({
count:9,//最多可以选择9张图
sizeType: ['original','compressed'],
sourceType:['album','camera'],
success: function(res) {
const tempFilePaths=res.tempFilePaths;
for (var i = 0; i < tempFilePaths.length;i++){
wx.uploadFile({
url: Funurl,
name: 'file',
filePath: tempFilePaths[i],//第几张图片
header: {
"Content-Type": "multipart/form-data"
},
success(res) {
fn(res);
},
fail(res) {
console.log(res.data);
}
})
}
},
})
}
})
module.exports=upload;

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

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

tijianPic 变量追加数组值    当执行完后  我们在console.log() 发现  上传文件了三次  在回调后的代码块里输出 也是三次 那么三次 我们不停的在数组上追加 即上传了多个文件  返回的每个路径我们都存到变量

如果代码还解决不了  请仔细阅读  和测试  上部分代码为 实践项目中部分代码

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

  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. poj--2236--棋盘问题(dfs)

    棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 31183   Accepted: 15469 Descriptio ...

  2. B1108 [POI2007]天然气管道Gaz 贪心

    啊啊啊,这题有毒.我想了各种花式数据结构,最后告诉我贪心???受不了... 题干: Description Mary试图控制成都的天然气市场.专家已经标示出了最好的天然气井和中转站在成都的地图.现在需 ...

  3. [源码管理] ubuntu下SVN服务器安装配置

    一.SVN安装1.安装包$ sudo apt-get install subversion2.添加svn管理用户及subversion组$ sudo adduser svnuser$ sudo add ...

  4. openssl https证书

    今天摸索了下 HTTPS 的证书生成,以及它在 Nginx 上的部署.由于博客托管在 github 上,没办法部署证书,先记录下,后续有需要方便快捷操作.本文的阐述不一定完善,但是可以让一个初学者了解 ...

  5. Linux下JDK Tomcat MySQL基本环境搭建

    1. 安装JDK wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1 ...

  6. WPF使用Winform PDFView控件

    最近开发wpf项目中有一个模块需要显示PDF文件内容.由于WPF本身没有PDF加载控件(似乎有收费的我查到过类似的资料.如果有新的pdf控件也请通知我一下谢谢). 项目使用之前也是从网上获取的资料,因 ...

  7. Unity3d Time

    using UnityEngine; using System.Collections; public class test1 : MonoBehaviour { public float angle ...

  8. <Android Framework 之路>Android5.1 MediaScanner

    前言 MediaScanner是Android系统中针对媒体文件的扫描过程,将储存空间中的媒体文件通过扫描的方式遍历并存储在数据库中,然后通过MediaProvider提供接口使用,在Android多 ...

  9. 开发手机APP过程,不同使用场景APP搜索框的样式及区别

    搜索框是 app 内最常见的控件之一,可以帮助用户快速又精准找到期望的内容与功能.不同的使用场景下,根据页面中搜索的重要程度,搜索框也有着不同的样式. 下面就常州开发APP公司和大家聊聊常见的四种样式 ...

  10. epoll的实现与深入思考

    提契 纸上得来终觉浅,绝知此事要躬行. 正文 前段时间写了一篇epoll的学习文章,但没有自己的心得总觉得比较肤浅,花了一些时间补充一个epoll的实例,并浅析一下过程中遇到的问题. 上epoll_s ...