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


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 相关文章推荐
JS日期对象简单操作(获取当前年份、星期、时间)
Oct 26 Javascript
JS实现HTML标签转义及反转义
Apr 14 Javascript
node.js利用redis数据库缓存数据的方法
Mar 01 Javascript
swiper自定义分页器使用方法详解
Sep 14 Javascript
React之PureComponent的使用作用
Jul 10 Javascript
js核心基础之构造函数constructor用法实例分析
May 11 Javascript
Node.js从字符串生成文件流的实现方法
Aug 18 Javascript
Node.js爬虫如何获取天气和每日问候详解
Aug 26 Javascript
react 生命周期实例分析
May 18 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 Javascript
原生js实现分页效果
Sep 23 Javascript
详解CocosCreator项目结构机制
Apr 14 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
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
天游软件面试
2013/11/23 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
历史教育专业个人求职信
2013/12/13 职场文书
高一军训的心得体会
2014/09/01 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
个人专业技术总结
2015/03/05 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
个人催款函范文
2015/06/24 职场文书
Python Matplotlib库实现画局部图
2021/11/17 Python
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript
ubuntu下常用apt命令介绍
2022/06/05 Servers