微信端调取相册和摄像头功能,实现图片上传,并上传到服务器


Posted in Javascript onMay 16, 2019

最近在做微信公众号网页开发,遇到两个需要用到微信的JSSDK,上传图片和自动定位,微信开发者文档有详细的步奏内容,链接点击进入微信开发者文档 ,也可以看看我这篇文章,看我是如何实现的。

首先第一步,需要在页面引入微信的JS文件(http和https都行)

<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

第二步,获取签名

后台会给前端一个接口,前端通过这个接口发送请求获取必要的签名信息,并进行配置

sendAjax.weixin.getSdkSign({'传入参数'},function(msg){
    let sdkSign = msg.sdkSgin; // 后台返回的值
   wx.config({
    debug: false, // 因为在手机上测试没法打印,当debug为true时,所有的返回值都会在手机上alert出来
    appId: sdkSign.appId, // 必填,公众号唯一标识
    timestamp: sdkSign.timestamp, // 必填,生成签名的时间戳
    nonceStr: sdkSign.nonceStr, // 必填,生成签名的随机串
    signature: sdkSign.signature,// 必填,签名
    jsApiList: ['chooseImage','uploadImage'] // 必填,需要使用的JS接口列表,需要用到什么接口就去开发者文档查看相应的字段名
   });
});

其中,sendAjax.weixin.getSdkSign 是我个人自己封装的ajax请求,不用多在意。

第三步,就是上传图片了,相信一般都是一个点击事件来调取微信的相册和摄像头功能。在事件方法中按以下方式写

wx.chooseImage({
    count: 1, // 最多可以选择的图片张数,默认9
    sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
    sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
    success: function (res) {
     let localIds = res.localIds; // 返回选定照片的本地ID列表(手机上操作就是手机端的ID列表,是一个数组),localId可以作为img标签的src属性显示图片
     wx.uploadImage({
      localId: localIds[0], // 需要上传的图片的本地ID,由chooseImage接口获得
      isShowProgressTips: 1, // 默认为1,显示进度提示
      success: function (result) {
       let serverId = result.serverId; // 返回图片的服务器端ID
         // 可以将serverId传给后台,用于存放在自己服务器上
      }
     });
    },
    fail: function() {},
    complete: function() {}
});

需要注意的是,chooseImage是调取微信相册和摄像头功能。其中count是可选择的,localIds是一个数组,当只上传一张图片时,localIds[0]可直接用来作为需要上传图片位置的路径,不用再拼接其他东西。

uploadImage是将本地图片上传到服务器,至于怎么上传,这应该是后端的事了,你只需要保证localIds这个数组正确即可。

至此,微信端调取相册和摄像头功能,实现图片上传,并上传到服务器功能基本就实现了,有疑问或者不对的地方欢迎留言。

以上所述是小编给大家介绍的微信端调取相册和摄像头功能图片上传服务器详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
表单元素事件 (Form Element Events)
Jul 17 Javascript
Javascript 二维数组
Nov 26 Javascript
JSON 编辑器实现代码
Dec 06 Javascript
基于Jquery的实现回车键Enter切换焦点
Sep 14 Javascript
JS实现静止元素自动移动示例
Apr 14 Javascript
JavaScript结合AJAX_stream实现流式显示
Jan 08 Javascript
阻止表单提交按钮多次提交的完美解决方法
May 16 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
浅谈JQ中mouseover和mouseenter的区别
Sep 13 Javascript
layui实现二维码弹窗、并下载到本地的方法
Sep 25 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
Aug 25 Javascript
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 #Javascript
怎样在vue项目下添加ESLint的方法
May 16 #Javascript
eslint 的三大通用规则详解
May 16 #Javascript
webpack项目使用eslint建立代码规范实现
May 16 #Javascript
Vue项目中使用jquery的简单方法
May 16 #jQuery
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 #Javascript
详解vue2.0模拟后台json数据
May 16 #Javascript
You might like
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
js尾调用优化的实现
2019/05/23 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
vue实现户籍管理系统
2020/05/29 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
Python中的zipfile模块使用详解
2015/06/25 Python
Python 中的 else详解
2016/04/23 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
Django之模板层的实现代码
2019/09/09 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
营销与策划应届生求职信
2013/11/04 职场文书
商铺消防安全责任书
2014/07/29 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
中秋节晚会开场白
2015/05/29 职场文书
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript
简单聊聊Golang中defer预计算参数
2022/03/25 Golang
python使用shell脚本创建kafka连接器
2022/04/29 Python