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


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中的cookie的读写操作示例详解
Apr 17 Javascript
jQuery中slideUp()方法用法分析
Dec 24 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
Jun 27 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
Oct 26 Javascript
javaScript语法总结
Nov 25 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
使用 Vue.js 仿百度搜索框的实例代码
May 09 Javascript
使用DataTable插件实现异步加载数据
Nov 19 Javascript
JS实现520 表白简单代码
May 21 Javascript
详解关于vue2.0工程发布上线操作步骤
Sep 27 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
Nov 25 Javascript
javascript实现动态时钟的启动和停止
Jul 29 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修正代码
2011/05/09 PHP
将时间以距今多久的形式表示,PHP,js双版本
2012/09/25 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
岗位竞聘报告范文
2014/11/06 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
配置Kubernetes外网访问集群
2022/03/31 Servers