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


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随机排序(随即出牌)
Sep 17 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
Aug 13 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
Nov 18 Javascript
BootStrap入门教程(二)之固定的内置样式
Sep 19 Javascript
AngularJS 2.0入门权威指南
Oct 08 Javascript
jQuery实现拖动剪裁图片作为头像
Dec 28 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
layui table 参数设置方法
Aug 14 Javascript
VUE DOM加载后执行自定义事件的方法
Sep 07 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
Sep 06 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中的array数组类型分析说明
2010/07/27 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
PHP实现变色验证码实例
2014/01/06 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
PHP微信支付开发实例
2016/06/22 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
js自带函数备忘 数组
2006/12/29 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python中requests小技巧
2017/05/10 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
技术合作协议书范本
2014/04/18 职场文书
2015年教学管理工作总结
2015/05/20 职场文书