文档章节

微信JSSDK上传多张图片

miaojiangmin
 miaojiangmin
发布于 2016/12/01 14:34
字数 427
阅读 72
收藏 4

做过微信开发的都知道,在部分android机型里微信不支持网页上传图片的,这是由于这些机型的文件上传存在内存泄漏,会导致微信闪退,所以微信内置浏览器将文件上传屏蔽。这就导致这些机型的用户在使用微信浏览器访问某些需要上传图片的网页时功能不正常。

 

前不久微信公开了一些接口,其中有一个uploadImage接口用于上传图片,一般和chooseImage接口配合使用。先调用chooseImage接口让用户选择一张或者多张图片,用户选择完毕后微信会返回被选中图片的id,再把图片id传给uploadImage接口上传图片。

 

由于uploadImage一次只能上传一张图片,因此当用户选择多张图片时,需要多次调用uploadImage接口来上传图片。

 

但是在实践的过程中发现,不管用户选中多少张图片,只有第一张能够上传成功。

查看了一下微信的文档,在常见问题中找到了相关的描述

 

uploadImage怎么传多图(目前只支持一次上传一张,多张图片需等前一张图片上传之后再调用该接口)

 

也就是说,如果想要上传多张图片,需要将之前并行上传改成串行。

代码如下:

$('#filePicker').on('click', function () {
	wx.chooseImage({
		success: function (res) {
			var localIds = res.localIds;
			syncUpload(localIds);
		}
	});
});
var syncUpload = function(localIds){
	var localId = localIds.pop();
	wx.uploadImage({
		localId: localId,
		isShowProgressTips: 1,
		success: function (res) {
			var serverId = res.serverId; // 返回图片的服务器端ID
			//其他对serverId做处理的代码
			if(localIds.length > 0){
				syncUpload(localIds);
			}
		}
	});
};

本文转载自:http://www.tuicool.com/articles/v6n6Bj

共有 人打赏支持
miaojiangmin
粉丝 9
博文 354
码字总数 95162
作品 0
宁波
程序员
微信JSSDK上传图片

最后发现的原因是一次不能上传多张图片,需要一张上传结束之后再传一下张。在上传成功后的通知方法中继续上传下一张。

我有一车切糕
2016/03/03
82
0
PHP之微信JSSDK图片上传预览下载到服务器

1.投票报名 主要实现报名功能 (1)form表单布局 3.微信JSSDK图片上传功能 3.1 jssdk.php jsapiticket.php accesstoken.php 放在项目文件下 3.2获取wx.config所需要的信息 页面中添加如下代码...

bengozhong
2016/11/03
1K
0
微信开发的一些问题

1、Android微信不支持flex布局: 参考:http://segmentfault.com/q/1010000003409405 提供的解决办法无非两种: a)新版webkit和旧版webkit混合flex写法; b)flex子元素需要displ:block; 本人...

Reya滴水心
2016/01/07
236
0
C#开发微信门户及应用(44)--微信H5页面开发的经验总结

在我们开发微信页面的时候,需要大量用到了各种呈现的效果,一般可以使用Boostrap的效果来设计不同的页面,不过微信团队也提供很多这方面的资源,包括JSSDK的接口,以及Weui的页面样式和相关...

walb呀
2017/12/04
0
0
点击图片上传文件

一、选择文件 1、隐藏input(大部分手机浏览器,微信中都不可用) 通过js触发选择文件。js获取选择的文件并上传 实现: 上传

陈安一
2015/08/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

win32截屏并rgb24转yuv420

//最终f的内存布局为BGRA格式,需要保证buf长度足够(>w*h*4)void ScreenCap(void* buf, int w, int h){ HWND hDesk = GetDesktopWindow(); HDC hScreen = GetDC(hDesk); ......

styleman
49分钟前
1
0
php输出mysql取出的中文为??的问题

解决方法: @ $db=new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_DB); $db->query("set names utf8");//添加此语句,可以解决问题...

Aomo
今天
1
2
白话SpringCloud | 第五章:服务容错保护(Hystrix)

前言 前一章节,我们知道了如何利用RestTemplate+Ribbon和Feign的方式进行服务的调用。在微服务架构中,一个服务可能会调用很多的其他微服务应用,虽然做了多集群部署,但可能还会存在诸如网...

oKong
今天
2
0
【解惑】领略Java内部类的“内部”

内部类有两种情况: (1) 在类中定义一个类(私有内部类,静态内部类) (2) 在方法中定义一个类(局部内部类,匿名内部类) 1、私有内部类 —— 在方法之间定义的内部类,非静态 我们首先看看类中...

偶尔诗文
今天
1
0
sqlserver 2008 r2 直接下载地址(百度云)

之前下载的sqlserver2008发现不能附加,就卸载了,重新找到了sqlserver2008R2的百度云资源 卸载sqlserver2008还是有点麻烦,不过就是需要删除注册表中的信息 自己来回卸载了3次终于重装sqlse...

dillonxiao
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部