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


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 相关文章推荐
jQuery使用手册之二 DOM操作
Mar 24 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
Dec 06 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
Aug 11 Javascript
JS小游戏之象棋暗棋源码详解
Sep 25 Javascript
jQuery的animate函数实现图文切换动画效果
May 03 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
Jul 09 Javascript
Node.js查找当前目录下文件夹实例代码
Mar 07 Javascript
AngulaJS路由 ui-router 传参实例
Apr 28 Javascript
基于zepto.js实现手机相册功能
Jul 11 Javascript
Angular中使用MathJax遇到的一些问题
Dec 15 Javascript
微信小程序如何获取openid及用户信息
Jan 26 Javascript
微信小程序使用 vant Dialog组件的正确方式
Feb 21 Javascript
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
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
php以post形式发送xml的方法
2014/11/04 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
python 输出所有大小写字母的方法
2019/01/02 Python
python字典的常用方法总结
2019/07/31 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
幼师求职自荐信范文
2014/01/26 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏