博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小程序上传图片
阅读量:5128 次
发布时间:2019-06-13

本文共 4326 字,大约阅读时间需要 14 分钟。

1.因为小程序的api描述都比较简单,并没有wxml及wxss的描述,要想实现小程序demo上的上传图片样式首先需要下载weui.wxss并引入到项目中

小程序版weui下载地址:https://github.com/Tencent/weui-wxss

可以将整个文件下载下来,将其中的dist文件夹导入到独立的小程序中作为参考

把weui.wxss放到自己的项目中后,在app.wxss中import weui.wxss 作为全局样式

/**app.wxss**/@import "weui.wxss";  

照着domo把wxml相关内容复制进自己的文件中

图片上传
{ {images.length}}/9

 根据demo修改相关js:

 首先实现选择图片功能

Page({  /**   * 页面的初始数据   */  data: {    images: [],//临时图片地址  },  chooseImage: function () {    var that = this;    wx.chooseImage({      count: 9, // 默认9      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有      success: function (res) {        console.log(res);        var tempFilePaths = res.tempFilePaths        that.setData({          images: that.data.images.concat(tempFilePaths)        })         }    })  },  previewImage: function (e) {    wx.previewImage({      current: e.currentTarget.id, // 当前显示图片的http链接      urls: this.data.images // 需要预览的图片http链接列表    })  } })

 在此基础上进行上传图片,上传文件官方方法如下:

wx.uploadFile({      url: 'https://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址      filePath: tempFilePaths[0],      name: 'file',      formData:{        'user': 'test'      },      success: function(res){        var data = res.data        //do something      }

 发现了尴尬的问题,发现上传图片一次只能传一张

参考了https://www.cnblogs.com/xjwy/p/6956120.html的递归方法,进行多张图片的上传

方法如下:

function uploadimg(data) {  var that=this;  var i = data.i ? data.i : 0,//要上传的图片    success = data.success ? data.success : 0,//上传成功的个数    fail = data.fail ? data.fail : 0;//上传失败的个数  wx.uploadFile({    url: data.url, //开发者服务器 url    filePath: data.path[i],    name: 'file',    formData: {      'user': 'test'    },    success: function (res) {      success++;      //do something    },    fail: function () {      fail++;    },    complete: function () {      i++;      if (i == data.path.length) {        console.log("success:" + success + "fail" + fail);      }else{        data.i = i;        data.success = success;        data.fail = fail;        uploadimg(data);      }    }  })} 

点击上传按钮后调用该方法,进行图片上传

uploadImg: function (e) {    var that = this;    if (that.data.images.length > 0) {      uploadimg({//调用图片上传uploadimg方法        url:  that.data.upImgUrl,//这里是你图片上传的接口        path: that.data.images//这里是选取的图片的地址数组      });    } else {        console.log("没有可上传的文件");    }  }

  全部js代码如下

function uploadimg(data) {  var that=this;  var i = data.i ? data.i : 0,//要上传的图片    success = data.success ? data.success : 0,//上传成功的个数    fail = data.fail ? data.fail : 0;//上传失败的个数  wx.uploadFile({    url: data.url, //开发者服务器 url    filePath: data.path[i],    name: 'file',    formData: {      'user': 'test'    },    success: function (res) {      success++;      //do something    },    fail: function () {      fail++;    },    complete: function () {      i++;      if (i == data.path.length) {        console.log("success:" + success + "fail" + fail);      }else{        data.i = i;        data.success = success;        data.fail = fail;        uploadimg(data);      }    }  })}Page({  /**   * 页面的初始数据   */  data: {    images: [],//临时图片地址    upImgUrl: 'https://........'//上传图片服务器地址  },   chooseImage: function () {    var that = this;    wx.chooseImage({      count: 9, // 默认9      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有      success: function (res) {        console.log(res);        var tempFilePaths = res.tempFilePaths        that.setData({          images: that.data.images.concat(tempFilePaths)        })      }    })  },  previewImage: function (e) {    wx.previewImage({      current: e.currentTarget.id, // 当前显示图片的http链接      urls: this.data.images // 需要预览的图片http链接列表    })  },  uploadImg: function (e) {    var that = this;    if (that.data.images.length > 0) {      uploadimg({        url:  that.data.upImgUrl,//这里是你图片上传的接口        path: that.data.images//这里是选取的图片的地址数组      });    } else {        console.log("没有可上传的文件");    }  }})

 小程序还在摸索阶段没实际开发测试过,暂时先记录下

转载于:https://www.cnblogs.com/Anne3/p/8884270.html

你可能感兴趣的文章
kubernetes-批量删除Evicted Pods
查看>>
LeetCode 分类颜色
查看>>
元类补充-属性查找
查看>>
网络编程基础
查看>>
17.树的子结构
查看>>
js 加减乘除以及四舍五入 新写法
查看>>
Map去重,去重value相同的元素,保留key最小的那个值
查看>>
maven 学习---Maven依赖管理
查看>>
神州数码交换机端口隔离
查看>>
[搬运工系列]-JMeter(十二)处理Cookie与Session
查看>>
输出100-200之间的所有素数并求和程序
查看>>
栅栏里的葱
查看>>
log info
查看>>
word中如何将空格变成换行
查看>>
Python - 字符编码篇
查看>>
什么是分布式系统 一个分布式系统需要什么结构
查看>>
代理目的是监听,监听的目标是代理方法的参数
查看>>
CSS之定位,relative/absolute/fixed的用法
查看>>
php中一个"异类"语法: $a && $b = $c; 【转载】
查看>>
Rsync的配置与使用
查看>>