微信jssdk多图上传
来源:互联网 发布:淘宝卖明星同款 编辑:程序博客网 时间:2024/05/20 22:39
在微信里面开发,我们可以使用微信jssdk 的图片上传
思路基本上是
手机选中图片,上传到微信服务器,加入临时素材库(好像三天就过期了)
然后再服务端去微信的服务器 把图片下载到本地。
如果有自己的cdn,可以在此上传到其他平台。
这里有两个思路
因为当我们选择手机图片时,我们就可以拿到图片了,这个时候页面上可以直接展示图片,但是是手机本身的图片,并没有在自己的服务器,我们并没有这个图片的链接
也可以自己的服务器下载下来之后,返回给前端一个连接,就是上传的图片的链接。但是前端展示就会慢一点
这两个感觉第二个必须比第一个好。但是也看情况。
第一种情况,你可以暂时不拉取微信的临时素材,等到查看的时候再拉取。数据库里面存临时码,再找机会拉取真正的图片。–虽然速度快,但是必须分段处理,在查看之前必须找机会拉取图片
第二种情况时拉取完了 再展示,数据库里面存的就是图片地址–虽然展示效果慢一点,但是存在数据库的都是正常的图片地址。不用再费心处理
开始代码吧
首先必须获取签名,通过这些签名,你才可以去调用jssdk接口
wx.config({ debug: false, appId: '{pigcms:$signPackage["appId"]}', timestamp: '{pigcms:$signPackage["timestamp"]}', nonceStr: '{pigcms:$signPackage["nonceStr"]}', signature: '{pigcms:$signPackage["signature"]}', jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone', 'chooseImage',//选择图片接口 'previewImage', 'uploadImage',//上传图片 'downloadImage'//下载图片 ]});
这是红包雨功能里面多图上传
使用vue来写的。所以里面有很多vue的代码,但是原理是通的
采用的是暂时不下载下来图片。后续下载。
upmoreimage: function () { var that = this; var up_num = $('.upimg_box_block li').length; if (up_num < 3) { var that = this; doupload(3 - up_num); } else { vm.warn_show('图片最多添加3张',3000);//最多上传三张 } function doupload(up_num) { that.$set('moreimages.localId', []); wx.chooseImage({ count: up_num, //顶部头像最多6张 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { //选择图片成功res为选择的图片// 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片 that.$set('moreimages.localId', res.localIds); if (that.moreimages.localId.length == 0) { vm.warn_show('请先选择上传图片',3000); return; } if (that.moreimages.localId.length > 3) { vm.warn_show('目前仅支持3张图片上传,请重新上传',3000); that.$set('moreimages.localId', []); return; } var i = 0, length = that.moreimages.localId.length; upload(); function upload() { wx.uploadImage({ 。 //上传图片,每次上传一张,拿着选择图片成功的参数,去上传到微信服务器 localId: that.moreimages.localId[i], isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) {//上传成功,返回一个码,可以去微信服务器获取图片 i++; //怎么把这个给加进去 var count = []; var more_img = that.more_img; for (x in more_img) { if (more_img[x].show == 0 && more_img[x].url == '') { count.push(x); } } if (count.length > 0) { var add_num = count[0]; that.more_img[add_num].url = that.moreimages.localId[i - 1]; that.more_img[add_num].show = 1; that.more_img[add_num].serverId = res.serverId; } if (i < length) { upload(); } }, fail: function (res) { vm.warn_show('上传失败,请重新上传',3000); } }); } } }); }},
遇到的坑
要用最新版的jssdk。因为我们在使用的时候发现,苹果手机展示本地的图片不能显示出来,结果是jssdk升级导致的。
阅读全文
1 0
- 微信jssdk多图上传
- 微信jssdk,实现多图上传的一点心得
- 微信jssdk,实现多图上传的一点心得
- 微信jssdk上传多图的问题
- 微信JSSDK上传多张图片
- 微信JSSDK多图片上传
- 微信JSSDK上传多张图片
- 微信公众号开发JSSDK上传图片(多图上传)
- 使用微信JSSDK实现图片上传
- 微信JSSDK上传,下载多媒体文件详情接口
- 利用微信jssdk上传图片,并保存到本地
- jssdk微信上传一张图片的方法
- 微信jssdk上传图片无法预览wxLocalResource文件
- 【坑爹微信】微信JSSDK图片上传问题和解决
- 微信jssdk 上传永久图片素材,获取Media_ID
- 微信 JSSDK
- 微信JSSDK-demo
- 微信JSSDK使用指南
- 打包oracle的JDBC驱动到maven仓库
- jQuery.ajax各种参数及属性设置
- tinker(一)-集成
- 响应式童装服装展示类dedecms织梦模板
- [51nod 1287]加农炮
- 微信jssdk多图上传
- 关于Android系统开放所有App运用的权限
- iOS源码博文集锦1
- 使用命令行下载百度云盘的数据
- 在Activity类之外监听Activity的生命周期
- 扑克游戏(小根堆)
- sendRedirect和forward的区别
- Codeforces Gym 101174 B. Bribing Eve
- Java注解(Annotation)详解(二)——自定义注解