微信小程序 拍照或从相册选取图片上传代码实例


Posted in Javascript onAugust 28, 2019

这篇文章主要介绍了微信小程序 拍照或从相册选取图片上传代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

upload.wxml

<!--pages/upload/upload.wxml-->
<button bindtap='uploadPhoto'>拍照选取照片上传</button>

upload.js

// pages/upload/upload.js
Page({
 data: {
  imgData: []
 },
 uploadPhoto(e) { // 拍摄或从相册选取上传
  let that = this;
  wx.chooseImage({
   count: 1, // 默认9
   sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
   sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
   success(res) {
    let tempFilePaths = res.tempFilePaths; // 返回选定照片的本地路径列表 
    that.upload(that, tempFilePaths);
   }
  })
 },
 upload(page, path) { // 上传图片
  wx.showToast({ icon: "loading", title: "正在上传……" });
  wx.uploadFile({
   url: '上传图片接口url', //后端接口
   filePath: path[0],
   name: 'file',
   header: {
    "Content-Type": "multipart/form-data"
   },
   success(res) {
    if (res.statusCode != 200) {
     wx.showModal({ title: '提示', content: '上传失败', showCancel: false });
     return;
    } else{
     console.log("上传成功! 可对返回的值进行操作,比如:存入imgData;");
    }
   },
   fail(e) {
    wx.showModal({ title: '提示', content: '上传失败', showCancel: false });
   },
   complete() {
    wx.hideToast(); //隐藏Toast
   }
  })
 }
})

ps:以上是单图上传,如果需要多图上传,请看下方:

// pages/publish/publish.js
Page({
 data: {
  imgData: []
 },
 uploadPhoto(e) { // 拍摄或从相册选取上传
  let that = this;
  wx.chooseImage({
   count: 9 - that.data.imgData.length, // 默认最多上传9张
   sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
   sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
   success(res) {
    let tempFilePaths = res.tempFilePaths; // 返回选定照片的本地路径列表 
    that.upload(that, tempFilePaths);
   }
  })
 },
 upload(page, path) { // 上传图片
  let that = this;
  wx.showToast({ icon: "loading", title: "正在上传……" });
  for (var i=0; i<path.length; i++) {
   wx.uploadFile({
    url: '上传图片接口url', //后端接口
    filePath: path[i],
    name: 'file',
    header: app.globalData.header,
    success(res) {
     if (res.statusCode != 200) {
      wx.showModal({
       title: '提示', 
       content: '第' + i +'张图片上传失败', 
       showCancel: false
      });
      return;
     } else {
      console.log('第' + i +'张图片上传成功!可在此操作,比如:存入imgData;');
     }
    },
    fail(e) {
     wx.showModal({
     title: '提示', 
     content: '第' + i +'张图片上传失败', 
     showCancel: false
     });
    },
    complete() {
     wx.hideToast(); //隐藏Toast
    }
   })
  }
 }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript json2 使用方法
Mar 16 Javascript
JS实现模仿微博发布效果实例代码
Dec 16 Javascript
jQuery使用animate创建动画用法实例
Aug 07 Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
Jun 13 Javascript
Node.js DES加密的简单实现
Jul 07 Javascript
jQuery使用getJSON方法获取json数据完整示例
Sep 13 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 jQuery
Vue 实现从文件中获取文本信息的方法详解
Oct 16 Javascript
微信小程序批量上传图片到七牛(推荐)
Dec 19 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
Mar 08 Javascript
小程序中this.setData的使用和注意事项
Aug 28 #Javascript
微信小程序 可搜索的地址选择实现详解
Aug 28 #Javascript
vue实现标签云效果的方法详解
Aug 28 #Javascript
微信小程序通过js实现瀑布流布局详解
Aug 28 #Javascript
TypeScript类型声明书写详解
Aug 28 #Javascript
vue服务端渲染操作简单入门实例分析
Aug 28 #Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
Aug 28 #Javascript
You might like
递归列出所有文件和目录
2006/10/09 PHP
自定义PHP分页函数
2006/10/09 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
vue配置请求本地json数据的方法
2018/04/11 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
vue实现分页栏效果
2019/06/28 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
Python帮你识破双11的套路
2019/11/11 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
Python中SQLite如何使用
2020/05/27 Python
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
什么是View State?
2013/01/27 面试题
党员评议个人总结
2014/10/20 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
民间借贷被告代理词
2015/05/23 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL