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


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 相关文章推荐
关于图片验证码设计的思考
Jan 29 Javascript
前端开发必须知道的JS之原型和继承
Jul 06 Javascript
利用javascript的面向对象的特性实现限制试用期
Aug 04 Javascript
JS图片无缝滚动(简单利于使用)
Jun 17 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
纯js的右下角弹窗实例
Mar 12 Javascript
微信小程序之电影影评小程序制作代码
Aug 03 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
Sep 12 Javascript
vue-router的HTML5 History 模式设置
Sep 08 Javascript
vue mounted 调用两次的完美解决办法
Oct 29 Javascript
你应该了解的JavaScript Array.map()五种用途小结
Nov 14 Javascript
在vue-cli创建的项目中使用sass操作
Aug 10 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获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
js post提交调用方法
2014/02/12 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
微信小程序 Storage更新详解
2019/07/16 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
使用Python操作excel文件的实例代码
2017/10/15 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
Django的CVB实例详解
2020/02/10 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
介绍一下except的用法和作用
2015/01/22 面试题
自荐信要包含哪些内容
2013/11/06 职场文书
报关专员求职信范文
2014/02/22 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
班级管理经验交流材料
2015/11/02 职场文书
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python