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


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 相关文章推荐
JavaScript 字符串与数组转换函数[不用split与join]
Dec 13 Javascript
js DOM的学习笔记
Dec 22 Javascript
Express.JS使用详解
Jul 17 Javascript
JS在可编辑的div中的光标位置插入内容的方法
Nov 20 Javascript
JQuery中使文本框获得焦点的方法实例分析
Feb 28 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
Mar 04 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
Aug 18 Javascript
JavaScript利用HTML DOM进行文档操作的方法
Mar 28 Javascript
基于JavaScript实现百度搜索框效果
Jun 28 Javascript
详解解决使用axios发送json后台接收不到的问题
Jun 27 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
Nov 20 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
Feb 03 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
自动分页的不完整解决方案
2007/01/12 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
js模糊查询实例分享
2016/12/26 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
Python函数式编程指南(二):从函数开始
2015/06/24 Python
python函数形参用法实例分析
2015/08/04 Python
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
python中的print()输出
2019/04/12 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
英国现代绅士品牌:Hackett
2017/12/17 全球购物
介绍一下SQL Server的全文索引
2013/08/15 面试题
倡议书的写法
2014/08/30 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
vue中data里面的数据相互使用方式
2022/06/05 Vue.js