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


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 相关文章推荐
JS宝典学习笔记(下)
Jan 10 Javascript
用js实现控制内容的向上向下滚动效果
Jun 26 Javascript
caller和callee的区别介绍及演示结果
Mar 10 Javascript
简单的两种Extjs formpanel加载数据的方式
Nov 09 Javascript
详解AngularJS的通信机制
Jun 18 Javascript
详解javascript函数的参数
Nov 10 Javascript
全面解析Javascript无限添加QQ好友原理
Jun 15 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 Javascript
Vue实现左右菜单联动实现代码
Aug 12 Javascript
JavaScript原型链与继承操作实例总结
Aug 24 Javascript
node实现简单的增删改查接口实例代码
Aug 22 Javascript
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
小程序中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采集相关教程之一 CURL函数库
2010/02/15 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
python格式化字符串实例总结
2014/09/28 Python
Python操作Excel之xlsx文件
2017/03/24 Python
vscode 远程调试python的方法
2017/12/01 Python
django输出html内容的实例
2018/05/27 Python
python框架flask表单实现详解
2019/11/04 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
异常和异常类的概念
2014/09/12 面试题
活动志愿者自荐信
2014/01/27 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
台风停课通知
2015/04/24 职场文书
2016年寒假见闻
2015/10/10 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
vue实现同时设置多个倒计时
2021/05/20 Vue.js
AJAX实现省市县三级联动效果
2021/10/16 Javascript