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


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对象的函数
Dec 22 Javascript
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
Oct 22 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
Jun 13 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
Sep 26 Javascript
微信小程序 http请求的session管理
Jun 07 Javascript
Vue-component全局注册实例
Sep 06 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
Dec 12 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
May 18 Javascript
node.js实现上传文件功能
Jul 15 Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 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 json转换成数组形式代码分享
2014/11/10 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
2019/10/11 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
javascript编程起步(第二课)
2007/02/27 Javascript
用JavaScript隐藏控件的方法
2009/09/21 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
Python读写ini文件的方法
2015/05/28 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
大学生就业自我推荐信
2014/05/10 职场文书
代办出身证明书
2014/10/21 职场文书
公司出纳岗位职责
2015/03/31 职场文书
2016年感恩节寄语
2015/12/07 职场文书
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis