微信小程序上传图片的时候,如果是多图片上传,一般都是直接用一个循环进行wx.uploadFile

这个在电脑上面测试与苹果手机上面都不会有什么问题

但当用安卓测试的时候,你会发现小程序会提示一个the same task is working

wx.uploadFile不能并行,因为wx.uploadFile是一个异步函数,所以循环的时候在安卓手机上会出现并行

解决的方法

做一个上传完的标识,然后

用递归算法进行上传

在上传成功的回调函数里面,直接递归,标识满足直接跳出,完成所有图片上传

贴上个代码段

//上传标识
var i=0
//imglist为要上传图片的路径数组
uploadImg: function () {
var that = this
if (i == imglist.length) {
//清空还原
news = ""
city = ""
i=0
wait = true
imglist = []
serverImg = []
retrunList = []
that.setData({
loding: false,
src: [],
disabled: false
})
return;
}
var imgcount = imglist.length;
wx.uploadFile({
url: config.serverUrl('index.php/user/uploadtu'),
filePath: imglist[i],
name: 'file',
formData: { 'user': 'test' },
success: function (res) {
serverImg.push(res.data)
if (imgcount == serverImg.length) {
var serverImgStr = serverImg.join("|")
wx.request({
url: config.serverUrl('index.php/user/baobeiadd'),
method: 'POST',
data: Util.json2Form({
imglist: serverImgStr,
userId: userId,
news: news,
city: city,
latitude: latitude,
longitude: longitude
}),
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function (res2) {
if (res2.data.state == "ok") { that.setData({
loding: false,
butTxt: "发布",
disabled: false
}) Util.mesUrl("发布成功!", "../index/index")
}
else {
Util.mes("描述至少10人字以上哦,还有图片也要选哦!")
}
}
})
}else
{
//这里直接递归
i++;
that.uploadImg();
}
},
fail: function (e) {
console.log(e)
Util.mes("图片上传失败,请重新发布!" + i)
}
}) },

  

微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决的更多相关文章

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

    fileUpload: function (tempFilePath) { var that = this;//坑1: this需要这么处理 wx.uploadFile({ url: url地址, / ...

  2. 微信小程序wx.uploadFile的两个坑

    -- setImage:function(e){ var _this = this //坑1 wx.chooseImage({ count: , sizeType: ['original', 'com ...

  3. 微信小程序wx.request接口

    微信小程序wx.request接口 wx.request是小程序客户端与服务器端交互的接口 HTTPS 请求 一个微信小程序,只能同时(同时不能大于5个)有5个网络请求 wx.request(OBJE ...

  4. 监控微信小程序wx.request请求失败

    在微信小程序里,与后台服务器交互的主要接口函数是wx.request(),用于发起 HTTPS 网络请求.其重要性不言而喻.然而,却经常遇到请求失败的问题,笔者特意谷歌"wx.request ...

  5. 微信小程序wx.showActionSheet调用客服信息功能

    微信小程序wx.showActionSheet调用客服消息功能 官方文档的代码: wx.showActionSheet({ itemList: ['A', 'B', 'C'], success (re ...

  6. 坑:微信小程序wx.request和wx.uploadFile中传参数的区别

    微信小程序中通过组件<form>提交表单的时候,在js中通过e.detail.value得到所提交表单的json格式数据.一般提交表单我们都是通过wx.request请求,提交表单数据,通 ...

  7. 自定义微信小程序导航(兼容各种手机)

    详细代码请见github,请点击地址,其中有原生小程序的实现,也有wepy版本的实现 了解小程序默认导航 如上图所示,微信导航分为两部分,第一个部分为statusBarHeight,刘海屏手机(iPh ...

  8. 微信小程序wx.pageScrollTo的替代方案

    wx.pageScrollTo这个微信小程序的api功能如下: 简而言之就是实现页面滚动的.但是在实际应用当中显得有些鸡肋,为啥呢?使用中有明显页面有明显的抖动,这无疑是极不好的用户体验.我用的华为6 ...

  9. 微信小程序wx.navigateTo层叠5次限制,特殊情况的建议

    小程序页面的实例使用栈的数据结构存储,栈内元素最多5个(换一种方式说,就是用户最多能点击5次返回),微信小程序能在栈中相对高层某个页面调用其他相对低层的页面实例的方法. 小程序三种页面跳转API 的区 ...

随机推荐

  1. mvc Razor 视图中找不到 ViewBag的定义

    在Razor 视图中,我们有时会看到 ViewBag.Title 下会划一个红线,当鼠标放上去的时候会提示这样的一个错误: 找不到编译动态表达式所需的一种或多种类型,是否缺少引用? 但在项目启动运行时 ...

  2. nullcon HackIM 2016 -- Programming Question 5

    Dont blink your Eyes, you might miss it. But the fatigue and exhaustion rules out any logic, any wil ...

  3. 初学c# -- 学习笔记(三)

    结合前面学的许多东西,写了一个小程序.会话.自定义滚动条.css等等.小程序没有用数据库,主要不知道该用哪种,以后再说吧.登录也简单,就输入用户名就可以了. 百度是个好东西,写程序时候,需要什么图就直 ...

  4. 有关STL 标准模板库

    1.vector  本质:对数组的封装  特点:读取能在常数时间内完成

  5. linux配置java环境变量(详细)

    linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...

  6. 嵌入式linux学习笔记1—内存管理MMU之虚拟地址到物理地址的转化

    一.内存管理基本知识 1.S3C2440最多会用到两级页表:以段的方式进行转换时只用到一级页表,以页的方式进行转换时用到两级页表.页的大小有三种:大页(64KB),小页(4KB),极小页(1KB).条 ...

  7. php常用的字符串函数

    addslashes -- 使用反斜线引用字符串 chr -- 返回相对应于 ascii 码值所指定的单个字符. chunk_split -- 将字符串分割成小块 count_chars --  返回 ...

  8. python学习之——操作浏览器

    使用selenium的webdriver框架,对浏览器的常规操作,如下~~ #coding=utf-8 from selenium import webdriver import time from ...

  9. CSS浏览器兼容问题总结

    为什么会出现浏览器兼容问题? 由于各大主流浏览器是不同的厂家开发的,所以使用的核心也不相同,架构代码很难重合,就会产生各种各样的bug. IE6中常见的css解析bug 1)默认高度(IE6)部分块元 ...

  10. node-webkit 支持pdf浏览

    因为项目最近需要进行pdf文件的预览. 项目:linux平台下使用node-webkit开发的桌面应用. 所以在想如何解决这个问题. 首先,firefox直接可以打开pdf文件,预览效果佳,有菜单,放 ...