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


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 相关文章推荐
基于jQuery的一个扩展form序列化到json对象
Dec 09 Javascript
js调用后台、后台调用前台等方法总结
Apr 17 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 Javascript
学习JavaScript设计模式(多态)
Nov 25 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
Jan 29 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
Dec 11 Javascript
Jquery Easyui表单组件Form使用详解(30)
Dec 19 Javascript
用Vue.extend构建消息提示组件的方法实例
Aug 08 Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
Sep 18 Javascript
VUEX采坑之路之获取不到$store的解决方法
Nov 08 Javascript
vue实现简单加法计算器
Oct 22 Javascript
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
PHP数据库调用类调用实例(详细注释)
2012/07/12 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
php算法实例分享
2015/07/14 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
PHP文件上传类实例详解
2016/04/08 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
node+express+ejs制作简单页面上手指南
2014/11/26 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
python的else子句使用指南
2016/02/27 Python
Python中的默认参数实例分析
2018/01/29 Python
python实现简单神经网络算法
2018/03/10 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
Python爬虫文件下载图文教程
2018/12/23 Python
python进行文件对比的方法
2018/12/24 Python
python实现flappy bird小游戏
2018/12/24 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
python 绘制场景热力图的示例
2020/09/23 Python
如何查看python关键字
2021/01/17 Python
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
高中运动会广播稿
2014/01/21 职场文书
基层党员公开承诺书
2014/05/29 职场文书
大学专科自荐信
2014/06/17 职场文书
团员自我评价范文
2015/03/10 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
感恩父母主题班会
2015/08/12 职场文书