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


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倒计时代码
Aug 12 Javascript
Js切换功能的简单方法
Nov 23 Javascript
js实现收缩菜单效果实例代码
Oct 30 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
Feb 22 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
JavaScript中正则表达式判断匹配规则及常用方法
Aug 03 Javascript
vue router仿天猫底部导航栏功能
Oct 18 Javascript
微信小程序时间控件picker view使用详解
Dec 28 Javascript
vue2 中二级路由高亮问题及配置方法
Jun 10 Javascript
javascript 对象 与 prototype 原型用法实例分析
Nov 11 Javascript
原生js实现密码强度验证功能
Mar 18 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
php实现的Captcha验证码类实例
2014/09/22 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
php5与php7的区别点总结
2019/10/11 PHP
php post换行的方法
2020/02/03 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
python图像常规操作
2017/11/11 Python
Python中协程用法代码详解
2018/02/10 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
python输出带颜色字体实例方法
2019/09/01 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
Python urllib3软件包的使用说明
2020/11/18 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
Pat McGrath Labs官网:世界上最有影响力的化妆师推出的彩妆品牌
2018/01/07 全球购物
写自荐信有哪些不宜?
2013/10/17 职场文书
技能竞赛活动方案
2014/02/21 职场文书
培训专员岗位职责
2014/02/26 职场文书
工程承包协议书范本
2014/09/29 职场文书
自我工作评价范文
2015/03/06 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript
Python中super().__init__()测试以及理解
2021/12/06 Python
Redis基本数据类型Set常用操作命令
2022/06/01 Redis