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


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写的一个链表实现代码
Oct 25 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
Sep 19 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
Dec 05 Javascript
js控制浏览器全屏示例代码
Feb 20 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
May 31 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
Feb 23 Javascript
JS实现中文汉字按拼音排序的方法
Oct 09 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
Dec 28 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
Jan 16 Javascript
jQuery实现二级导航菜单的示例
Sep 30 jQuery
如何用JavaScript检测当前浏览器是无头浏览器
Apr 27 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调用Oracle存储过程
2006/10/09 PHP
MYSQL环境变量设置方法
2007/01/15 PHP
php 更新数据库中断的解决方法
2009/06/05 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
js实现二级导航功能
2017/03/03 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
介绍Python中几个常用的类方法
2015/04/08 Python
查看Django和flask版本的方法
2018/05/14 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
如何将 awk 脚本移植到 Python
2019/12/09 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
先进个人事迹材料
2014/01/25 职场文书
法人授权委托书
2014/09/16 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
批评与自我批评总结
2014/10/17 职场文书
西柏坡观后感
2015/06/08 职场文书
大学开学感言
2015/08/01 职场文书
贷款担保书范本
2015/09/22 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
zabbix监控mysql的实例方法
2021/06/02 MySQL
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android