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


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 相关文章推荐
XMLHTTPRequest的属性和方法简介
Nov 23 Javascript
JavaScript获取和设置CheckBox状态的简单方法
Jul 05 Javascript
js中的setInterval和setTimeout使用实例
May 09 Javascript
js使用心得分享
Jan 13 Javascript
AngularJS 面试题集锦
Sep 06 Javascript
jQuery序列化表单成对象的简单实现
Nov 29 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
Mar 21 Javascript
详解Vue2.0 事件派发与接收
Sep 05 Javascript
详解vue-cli之webpack3构建全面提速优化
Dec 25 Javascript
详解nginx配置vue h5 history去除#号
Nov 09 Javascript
vue-router定义元信息meta操作
Dec 07 Vue.js
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 include_path设置技巧分享
2011/07/03 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
一个简单的php路由类
2016/05/29 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
JS随机密码生成算法
2019/09/23 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
Python实现统计单词出现的个数
2015/05/28 Python
Python与R语言的简要对比
2017/11/14 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
python list转矩阵的实例讲解
2018/08/04 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
基于python3 的百度图片下载器的实现代码
2019/11/05 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
浅析Python3 pip换源问题
2020/01/06 Python
python模拟斗地主发牌
2020/04/22 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
《数星星的孩子》教学反思
2014/04/11 职场文书
职业生涯规划书前言
2014/04/15 职场文书
经理任命书模板
2014/06/06 职场文书
材料物理专业求职信
2014/09/01 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
校本研修个人总结
2015/02/28 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书