小程序-扩展能力图片上传Uploader组件
微信小程序中有一些扩展组件可以用,例如其中的图片上传组件,不论样式还是上传时的动画,都比较好,在使用过程中也遇到了一些问题,在这记录一下,也期望能让后来用的人少走弯路。
第一步,首先访问网址,https://developers.weixin.qq.com/miniprogram/dev/extended/weui/download.html,下载你需要的组件到程序中,需要下载这uploader,cells,cells三个。
第二步,看https://developers.weixin.qq.com/miniprogram/dev/extended/weui/uploader.html 上传组件的文档,在你要用的模块中的json文件中写入这是三个,在pages下新建个components文件夹,把下载的组件放进去

第三步,使用,按照文档,ctrl+v就可以了,

需要注意的是,
上传的方法,在upload中上传图片的时候,需要调用 ,
,
在组件上传中, ,其中resolve就是上传图片成功后,需要调用resolve(object),就走到了
,其中resolve就是上传图片成功后,需要调用resolve(object),就走到了 ,如果上传失败,就调用reject(object),就走到了失败的方法,这其中需要注意的是,Promise的callback里面必须resolve({urls})表示成功,  就是你上传图片到后台后,返回的图片地址object对象,对象中是个“urls”数组,一定要是数组, 这样调用reject(object)才能走到成功的方法,不然即使你上传成功了,没有返回数组,还是认为你失败,
,如果上传失败,就调用reject(object),就走到了失败的方法,这其中需要注意的是,Promise的callback里面必须resolve({urls})表示成功,  就是你上传图片到后台后,返回的图片地址object对象,对象中是个“urls”数组,一定要是数组, 这样调用reject(object)才能走到成功的方法,不然即使你上传成功了,没有返回数组,还是认为你失败,
这是一个需要注意的问题,另外,一次上传多张时,也有需要注意的地方,如果你的上传方法,一次可以上传多张,返回一个数组,或者你可以拼接组装一个数组,那最好了,直接在上传成功的回调中,直接resolve({urls})就可以了,
但是如果你的上传方法只能一次传一张,那就需要注意了,我们需要循环来上传。下面就是我的循环上传的方法
 1  uplaodFile(files) {
 2     console.log('upload files', files)
 3     // 文件上传的函数,返回一个promise
 4     return new Promise((resolve, reject) => {
 5       var tempFilePaths = files.tempFilePaths;
 6       //上传返回值
 7       var app = getApp();
 8       var that = this;
 9       that.setData({
10         urlArr: [], //这用来存放上传多张时的路径数组
11       });
12       var object = {};
13       for (var i = 0; i < tempFilePaths.length; i++) {
14         const upload_task = wx.uploadFile({
15           // 模拟https
16           url: app.globalData.uploadUrl, //需要用HTTPS,同时在微信公众平台后台添加服务器地址
17           filePath: files.tempFilePaths[i], //上传的文件本地地址
18           name: 'file',
19           //附近数据,这里为路径
20           success: function(res) {
21             var images = that.data.images;
22             var data = JSON.parse(res.data);
23             if (data.status == "ok") {
24               var url = data.url
25               that.setData({
26                 urlArr: that.data.urlArr.concat(app.globalData.zzbHttp + url), //拼接多个路径到数组中
27               });
28               object['urls'] = that.data.urlArr;
29               that.setData({
30                 images: images + data.url + ";", //images用来存放路径字符串,保存到数据库中的是这个,用“;”分割,但是返回的路径没有“;”,就自己拼上了
31               });
32               console.log("urlArr:" + that.data.urlArr.length + ";;" + (tempFilePaths.length))
33               console.log(that.data.images);
34               if (that.data.urlArr.length == tempFilePaths.length) {
35                 resolve(object)  //这就是判断是不是最后一张已经上传了,用来返回,
36               }
37             } else {
38               reject(res)
39             }
40           },
41           fail: function(err) {
42             console.log(err)
43           }
44         })
45       }
46     })
47   }
基本上就这些需要注意的点。
小程序-扩展能力图片上传Uploader组件的更多相关文章
- 微信小程序简单封装图片上传组件
		微信小程序简单封装图片上传组件 希望自己 "day day up" -----小陶 我从哪里来 在写小程序的时候需要上传图片,个人觉得官方提供的 Uploader 组件不是太好用, ... 
- 微信小程序:多张图片上传
		最近在写小程序的相册,需要多张图片的上传.因为小程序不支持数组的多张图片同时上传,然后根据自己的需求+借鉴网上各位大神的案例,总算搞定.分享下,不足之处,多多指教哦 页面wxml: <form ... 
- Day12-微信小程序实战-交友小程序-搭建服务器与上传文件到后端
		要搞一个小型的cms内容发布系统 因为小程序上线之后,直接对数据库进行操作的话,慧出问题的,所以一般都会做一个管理系统,让工作人员通过这个管理系统来对这个数据库进行增删改查 微信小程序其实给我们提供了 ... 
- 微信小程序入门八头像上传
		1. action-sheet 底部弹出可选菜单组件 2. wx.uploadFile 将本地资源上传到服务器 3. wx.chooseImage 从本地相册选择图片或使用相机拍照. 4. wx.pr ... 
- 微信小程序--更换用户头像/上传用户头像/更新用户头像
		changeAvatar:function (){ var that=this; wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'c ... 
- ThinkPHP图片上传
		ThinkPHP是国内比较流行的轻量级的PHP框架,它在国内流行的一个最主要的因素在于它的说明文档非常健全完善,以及它源码内的注释都是中文的,方便于英语能力较差的程序员学习. 图片上传在网站里是很常用 ... 
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
		一.前言 三年.net开发转前端已经四个月了,前端主要用webpack+vue,由于后端转过来的,前端不够系统,希望分享下开发心得与园友一起学习. 图片的上传之前都是用的插件(ajaxupload), ... 
- 5行代码实现微信小程序图片上传与腾讯免费5G存储空间的使用
		本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频 ... 
- 微信小程序开发之多图片上传+服务端接收
		前言: 业务需求,这次需要做一个小程序同时选中三张图片一起上传到服务端,后端使用的.NET WEBAPI接收数据保存. 使用技术: 在这章中将会使用到微信小程序wx.uploadFile(Object ... 
- 快速高效实现微信小程序图片上传与腾讯免费5G存储空间的使用
		本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率 对于一般的图片上传功能开发,我们 ... 
随机推荐
- 彻底弄懂Javascript模块导入导出
			笔者开始学习Javascript的时候,对模块不太懂,不知道怎么导入模块,导出模块,就胡乱一通试 比如 import xx from 'test.js' 不起作用,就加个括号 import {xx} ... 
- 【基础篇】一文带你掌握 Redis
			一.摘要 谈起 Redis,相信大家都不会陌生,做过云平台开发的程序员多多少少会接触到它,Redis 英文全称:Remote Dictionary Server,也被称之为远程字典服务. 从官方的定义 ... 
- [OpenCV实战]26 基于OpenCV实现选择性搜索算法
			目录 1 背景 1.1 目标检测与目标识别 1.2 滑动窗口算法 1.3 候选区域选择算法 2 选择性搜索算法 2.1 什么是选择性搜索? 2.2 选择性搜索相似性度量 2.3 结果 3 代码 4 参 ... 
- (3)go-micro微服务项目搭建
			目录 一 微服务项目介绍 二 go-micro安装 1.拉取micro镜像 2.生成项目目录 三 项目搭建 使用DDD模式开发项目: 四 最后 一 微服务项目介绍 账户功能是每一个系统都绕不开的一部分 ... 
- SSM框架——整合ssm
			SSM整合 1.准备工作 新建一个普通的Maven项目 建好所有需要的架构层 向pom.xml中导入所有的依赖 <!--MyBatis相关--> <dependency> &l ... 
- Pollard_Rho算法
			数论 Pollard_Rho算法 1.1作用 Pollard_Rho算法解决大数的质因数分解.又是一个玄学算法.. 2.1 试除法 我们的任务是对一个数字n进行质因数分解.可以发现,n的因数将会对称的 ... 
- 轻松解决 CSS 代码都在一行的问题
			前言 最近在做博客园的界面美化,用的是博客园[guangzan]的开源项目,配置超级简单,只需要复制粘贴代码就好啦. 但在粘贴 CSS 代码时遇到一个问题,那就是所有代码都挤在了一行,没有一点排板的样 ... 
- Ubuntu安装Anaconda并且配置国内镜像教程
			前言 我们在学习 Python 的时候需要不同的 Python 版本,关系到电脑环境变量配置换来换去很是麻烦,所以这个时候我们需要一个虚拟的 Python 环境变量,我之前也装过 virtualenv ... 
- 无需依赖Docker环境制作镜像
			随着高版本的Kubernetes弃用Docker,企业也可以不依赖Docker环境了,但是DevOps通过Kubernetes部署的话,仍然需要制作镜像,那么在没有Docker环境的情况下如何制作呢? ... 
- OPA-CH32x系列芯片OPA使用注意事项
			1 OPA运放基本功能说明 1.1 OPA引脚详细说明方式 说明方式1如下所示: OPN0.OPP0.OPO为OPA的第0通道 OPN0:OPA_0通道的N端 OPP0:OPA_0通道的P端 OPO: ... 
