微信JSSDK上傳多張圖片

作過微信開發的都知道,在部分android機型裏微信不支持網頁上傳圖片的,這是因爲這些機型的文件上傳存在內存泄漏,會致使微信閃退,因此微信內置瀏覽器將文件上傳屏蔽。這就致使這些機型的用戶在使用微信瀏覽器訪問某些須要上傳圖片的網頁時功能不正常。android

 

前不久微信公開了一些接口,其中有一個uploadImage接口用於上傳圖片,通常和chooseImage接口配合使用。先調用chooseImage接口讓用戶選擇一張或者多張圖片,用戶選擇完畢後微信會返回被選中圖片的id,再把圖片id傳給uploadImage接口上傳圖片。瀏覽器

 

因爲uploadImage一次只能上傳一張圖片,所以當用戶選擇多張圖片時,須要屢次調用uploadImage接口來上傳圖片。服務器

 

可是在實踐的過程當中發現,無論用戶選中多少張圖片,只有第一張可以上傳成功。微信

查看了一下微信的文檔,在常見問題中找到了相關的描述微信開發

 

uploadImage怎麼傳多圖(目前只支持一次上傳一張,多張圖片需等前一張圖片上傳以後再調用該接口)server

 

也就是說,若是想要上傳多張圖片,須要將以前並行上傳改爲串行。接口

代碼以下:圖片

$('#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);
			}
		}
	});
};
相關文章
相關標籤/搜索