js-jssdk微信H5选择多张图片预览并上传(兼容ios,安卓,已测试)
值得注意的是:
1.在微信H5中选择图片运用:wx.chooseImage,成功后返回: res.localIds用于上传图片使用
上传图片:wx.uploadImage。
2.上传图片的时候务必是一张一张的上传的(建议采用递归)
3.一张图片上传成功后务必需要延迟个几百毫秒再执行下一张的上传。
案例:深圳艺星“#美力女生#星粉颜值夏令营,2019Yestar艺星整形”
Html
<div class="photos">
<p>同时选择上传1-9张照片,第一张为封面图</p>
<div class="photosInput">
<div id="dd"></div> //这里面是存储放置上传的图片的
<div onclick="ChoosePhoto()" id="chooseimgDiv" >选择图片</div>
</div>
</div>
js:
var imgA=new Array();
var imgserverId; //存储的图片拼接字符;
function ChoosePhoto(){
wx.chooseImage({
count: 9, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
document.getElementById("dd").innerHTML="";
imgA=[];
imgserverId="";
var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
var htmlPhoto="";
for(var i=0;i<localIds.length;i++){
htmlPhoto +='<div class="imgdiv"><img src='+ localIds[i]+' /></div>';
}
syncUpload(localIds)
document.getElementById("dd").innerHTML+=htmlPhoto;
}
});
};
var syncUpload = function(localIds){
var localId = localIds.pop();
wx.uploadImage({
localId: localId.toString(), // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (res) {
//res.serverId 返回图片的服务器端ID
var serverId = res.serverId; // 返回图片的服务器端ID
imgA.push(serverId)
imgserverId=imgA;
if(localIds.length > 0){
window.setTimeout(function(){
syncUpload(localIds);
},100);
}else{
window.setTimeout(function(){
downloadImage(0);
},100);
}
}
})
}
题外话:
在ios中之前做项目时也有遇到一个需求是“分享朋友圈后抽奖次数+1”。的情况。
安卓能够好好的判断接收到用户分享成功。但是ios则不会成功。
我们的解决办法也是需要延迟几百毫秒才能正常成功的接收到苹果的分享反馈
js-jssdk微信H5选择多张图片预览并上传(兼容ios,安卓,已测试)的更多相关文章
- 原生js实现图片预览并上传
最近主导的PC客户端网站重构工程告一段落,下一阶段开始给公司APP开发H5页面,技术栈是react.最近碰到一个需求:需要在H5页面上添加身份证照片,预览并上传.因为要兼容安卓4.4以下版本的手机,所 ...
- 用js实现预览待上传的本地图片
js实现预览待上传的本地图片,代码如下: <form name="form5" id="form5" method="post" ac ...
- 基于“formData批量上传的多种实现” 的多图片预览、上传的多种实现
前言 图片上传是web项目常见的需求,我基于之前的博客的代码(请戳:formData批量上传的多种实现)里的第三种方法实现多图片的预览.上传,并且支持三种方式添加图片到上传列表:选择图片.复制粘贴图片 ...
- html5 选择多张图片在页面内预览并上传到后台
版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/huangxin112/article/details/74956462 需求:点击选择图片(可选多张) ...
- js多图预览及上传功能
<%-- Created by IntelliJ IDEA. User: Old Zhang Date: 2018/12/27 Time: 11:17 To change this templa ...
- 如何预览将要上传的图片-使用H5的FileAPI
这篇将要说的东西已经不新鲜了. 参考资料: Reading files in JavaScript using the File APIs (鉴于作者在美国, 我姑且认为作者母语是英语, 当然链接中有 ...
- H5-FileReader实现图片预览&Ajax上传文件
图片预览 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- jquery+html5+canvas实现图片 预览 压缩 上传
javascirpt (function($){ $.fn.extend({ aiiUpload:function(obj) { if(typeof obj !="object") ...
- 前端图片预览,上传前预览,兼容IE7、8、9、10、11,Firefox,Chrome(学习到的知识)
文章地址:http://www.cnblogs.com/rubylouvre/p/4597344.html 一.window.URL 在Chrome中,window.URL和window.webkit ...
随机推荐
- Java虚拟机最多支持多少个线程?
作者:miracle1919 来源:http://sina.lt/getP McGovernTheory在StackOverflow提了这样一个问题:Java虚拟机最多支持多少个线程?跟虚拟机开发商 ...
- [BZOJ1492] [NOI2007] 货币兑换Cash(cdq分治+斜率优化)
[BZOJ1492] [NOI2007] 货币兑换Cash(cdq分治+斜率优化) 题面 分析 dp方程推导 显然,必然存在一种最优的买卖方案满足:每次买进操作使用完所有的人民币:每次卖出操作卖出所有 ...
- 【剑指offer】Q16:翻转链表
def reverse(head): if head == None or head.next == None: return head psuhead = ListNode(-1) while he ...
- 重磅 | Elasticsearch7.X学习路线图
原文:重磅 | Elasticsearch7.X学习路线图 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.c ...
- [转载]浅谈JavaScript函数重载
原文地址:浅谈JavaScript函数重载 作者:ChessZhang 上个星期四下午,接到了网易的视频面试(前端实习生第二轮技术面试).面了一个多小时,自我感觉面试得很糟糕的,因为问到的很多问题都 ...
- ReentrantLock等待通知机制Condition介绍
Object类中的wait(),notify()和notifyAll()可以实现线程的等待通知模型,同样在ReentrantLock中可以借助Condition来完成这种机制.本篇就简要介绍Condi ...
- Window Server 2008 R2 FTP服务用户隔离
Window Server 2008 R2 FTP服务用户隔离 原题:安装FTP服务,新建一个FTP站点,主目录为C:\ftproot,通过适当技术实现用户soft1 与soft2通过匿名方式登录FT ...
- css定位选择兄弟元素,nth-of-type
<span class="input-group-btn" the-id="num-change"> <button class=" ...
- NOIP原题板刷
update 10.11 我可能已经刷完大部分了,可是这篇blog我也不想更了 这个人很懒,做了很多题但是不想写题解,也不想更blog,所以这篇blog又咕咕了. 把从 \(1997-2017\) 近 ...
- mona!mona!mona!
$ PS: $ 关于\(mona\) 是只很棒的猫啦!想知道的可以自己去看\(persona5\)的游戏流程或者动画版啦. \(PPS:\) 补充一下设定啊,\(mona\)是摩尔加纳(原名)的代号啦 ...