微信小程序-拍照或选择图片并上传文件


Posted in Javascript onJanuary 06, 2017

微信小程序-拍照或选择图片并上传文件

调用拍照API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-picture.html?t=20161222#wxchooseimageobject

上传文件API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-file.html

主要js代码:

choice: function () { 
  var that = this 
  wx.chooseImage({ 
   count: 1, // 默认9 
   sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 
   sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 
   success: function (res) { 
    // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 
    var tempFilePaths = res.tempFilePaths 
    that.setData({ 
     textHidden: true, 
     image_photo: tempFilePaths, 
     photoHidden: false 
    }) 
   } 
  }) 
 }, 
 uploadPhoto: function () { 
  var that = this 
  let param = util.json2Form({ 
   tel: '18600346580', 
   orderSn: that.data.orderSn, 
   parkingPhoto: that.data.image_photo, 
  }); 
  wx.uploadFile({ 
   url: 'https://testapi.****.com/v4.0.0/uploadParkingPhoto', //仅为示例 
   filePath: that.data.image_photo[0], 
   name: 'parkingPhoto', 
   formData: { 
    'tel': '***********', 
    'orderSn': that.data.orderSn, 
   }, 
   success: function (res) { 
    var obj = JSON.parse(res.data);; 
    console.log(obj.result) 
    console.log(obj.msg) 
    var resule = obj.result; 
    var msg = obj.msg; 
    if (resule == 'false') { 
     wx.showToast({ 
      title: msg, 
      icon: 'success', 
      duration: 2000 
     }) 
    } else { 
     wx.navigateBack({ 
      delta: 1, 
      success: function (res) { 
       wx.showToast({ 
        title: msg, 
        icon: 'success', 
        duration: 2000 
       }) 
      }, 
 
     }) 
    } 
   } 
  }) 
 
 }

Tip:

1.调用wx.chooseImage() 自动弹出选择窗口,不用调用操作菜单wx.showActionSheet(),否则重复

如图

微信小程序-拍照或选择图片并上传文件

2. 上传文件的时候filePath必须是数组,当你单张的时候需要使用数组,若只有一张要用[0]

3. 最需要注意的是,success返回数据是String类型,我们需要将String类型转换成Object

微信小程序-拍照或选择图片并上传文件

js字符串转换成obj

用js 是有三种方法的

  1. js自带的eval函数,其中需要添加小括号eval('('+str+')');
  2. JSON.parse(str)
  3. $.parseJSON( jsonstr )

但是在微信小程序中,我们只能用JSON.parse(str),其他的都不可以

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
ExtJS PropertyGrid中使用Combobox选择值问题
Jun 13 Javascript
BOM与DOM的区别分析
Oct 26 Javascript
javascipt基础内容--需要注意的细节
Apr 10 Javascript
jQuery的基本概念与高级编程
May 14 Javascript
js实现Select列表内容自动滚动效果代码
Aug 20 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 Javascript
JS实现简单的右下角弹出提示窗口完整实例
Jun 21 Javascript
bootstrap table 数据表格行内修改的实现代码
Feb 13 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
vue中注册自定义的全局js方法
Nov 15 Javascript
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
ajax异步请求详解
Jan 06 #Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 #Javascript
微信小程序 二维码canvas绘制实例详解
Jan 06 #Javascript
微信小程序 小程序制作及动画(animation样式)详解
Jan 06 #Javascript
JS调用Android、Ios原生控件
Jan 06 #Javascript
JS正则匹配中文的方法示例
Jan 06 #Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
Jan 06 #Javascript
You might like
ASP知识讲座四
2006/10/09 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
javascript 面向对象编程基础:封装
2009/08/21 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
详解JavaScript的变量
2019/04/04 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
Python实现针对中文排序的方法
2017/05/09 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
财务管理专业自荐信范文
2013/12/24 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA
nginx设置资源请求目录的方式详解
2022/05/30 Servers