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


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弹出层插件简化版代码下载
Oct 16 Javascript
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
Nov 30 Javascript
基于jquery库的tab新形式使用
Nov 16 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
js构造函数、索引数组和属性的实现方式和使用
Nov 16 Javascript
jQuery插件jquery-barcode实现条码打印的方法
Nov 25 Javascript
干货分享:让你分分钟学会javascript闭包
Dec 25 Javascript
angularjs使用directive实现分页组件的示例
Feb 07 Javascript
jQuery实现链接的title快速出现的方法
Feb 20 Javascript
Javascript中引用类型传递的知识点小结
Mar 06 Javascript
JavaScript函数节流的两种写法
Apr 07 Javascript
关于HTML5的data-*自定义属性的总结
May 05 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 COOKIE设置为浏览器进程
2009/06/21 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
Linux环境下MySQL-python安装过程分享
2015/02/02 Python
Python入门教程之if语句的用法
2015/05/14 Python
Python实现ssh批量登录并执行命令
2016/10/25 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
酒店办公室文员岗位职责
2013/12/18 职场文书
兼职业务员岗位职责
2014/01/01 职场文书
代理协议书
2014/04/22 职场文书
单位委托书
2014/10/15 职场文书
服务员态度差检讨书
2014/10/28 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
中学教师读书笔记
2015/07/01 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL