首页 > 编程语言 >小程序开发-多图上传

小程序开发-多图上传

时间:2024-03-28 11:46:45浏览次数:24  
标签:count err res 程序开发 多图 uni 上传 图片

  博主在用uniapp开发小程序的时候发现一个问题。使用图片上传功能的时候,小程序无法使用uni.uploadFile内的files字段一次性上传多张图片;只能循环一张一张图片上传;那么就涉及一个问题,循环上传过程中可能第一张图片已经上传好了,但后续的图片还没有上传完成;这时候结束页面的加载状态会出现图片不完全显示的问题。

  解决方案:使用Promise.all,待所有上传完成后再进入then函数,关闭页面的加载状态。

  话不多说,上代码:

// 多图上传 使用promise.all .js文件
// 传入参数:count:最大图片数;successcc:成功后调用的函数,failcc:失败后调用的函数
uploadImgs(count, successcc, failcc) { uni.chooseImage({ count: count, fail(err) { if (err.errCode == 0) { uni.showModal({ title: "提示", content: "您暂未允许应用读写设备上的照片及文件,请前往设置-应用权限开启该权限" }) return } if (err.errMsg.includes('No Permission')) { uni.showModal({ title: "提示", content: "您暂未允许应用拍摄与录制,请前往设置-应用权限开启该权限" }) return } }, success(files) { console.log("数据", files) uni.showLoading({ title: "图片上传中", mask:true }) Promise.all(files.tempFilePaths.map(itm => uploadF(itm))).then(res => { console.log(res, 'promise') successcc && successcc(res) }).catch(err => { console.log(err, 'promise') failcc && failcc(err) }) } }) function uploadF(filepath) { return new Promise((resolve, reject) => { wx.uploadFile({ filePath: filepath, name: 'file', url: HTTP_REQUEST_URL + '/staffapi/upload/image', success(res) { resolve(res.data); }, fail(msg) { reject(); } }) }); } },

  页面中的调用:

this.$util.uploadImgs(count, (res) => {
      uni.hideLoading()
           console.log(res,'promise back')
           _this.formdata.ss_array[index].ss_img = res
     }, (err) => {
         uni.showToast({
           title: "图片上传失败,单图最大不能超过10M",
           icon: "none"
       })
})

  这样的话Promise.all就会在执行了所有函数后再返回,图片就会一次性全部加载出来;但是会加大用户的等待时间。

  如果是使用微信开发者工具来开发小程序,这一部分也是一样的,只需要将uni. 改成wx. 即可。

 

标签:count,err,res,程序开发,多图,uni,上传,图片
From: https://www.cnblogs.com/yule-i7/p/18101240

相关文章

  • 如何从其他平台复制商品上传到自己店铺?官方授权接口,一键复制爆款同款
    很多做一件代发的卖家在上新时会从其他平台选品铺货,看到某个商品卖得不错,直接复制到自己店铺去卖,可以节省测款成本。现在平台严查无货源,直接从别人店铺搬运商品属于违规违规行为,想要复制这个爆款的话,就需要从1688选择同款货源进行铺货。①添加到上传列表中勾选商品,点击“添......
  • 前端本地项目上传gitee
    前言:电脑配置过git并且了解git命令的情况下初始上传打开gitee码云创建自己的仓库第二步第三步 找到你项目的文件夹输入cmd进入命令行第四步初始化gitinit成功后查看项目文件夹第五步gitadd.第六步创建版本号  gitcommit-m"项目第一版增删改查"......
  • 前端项目上传gitee 电脑没有配置git的情况下
    1、什么是GIT?Git是一个免费、开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。2.git相关概念Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的......
  • 大文件上传实践分享
    一、方案背景:在此前的项目中有个需求是用户需要通过前端页面上传大约1.5G的压缩包,存储到OSS,后提供给其他用户下载。于是我开始了大文件上传方案的探索。本文主要探究的是前端技术实现,后端给予相应的支持。二、原理探索之路2.1大文件上传想要实现的目标在此项目中,我想实现的目......
  • 【python】服务端和客户端 RESTful 接口上传 E
    哈喽,大家好,我是木头左,物联网搬砖工一名,致力于为大家淘出更多好用的AI工具!服务端代码1.安装Flask和Flask-RESTful需要安装Flask和Flask-RESTful这两个库。Flask是一个轻量级的Web框架,而Flask-RESTful则是一个为Flask添加了RESTfulAPI支持的扩展。pipinstall......
  • 文件上传
    1、content-type绕过2、Java安全模式%c0%ae绕过文件上传https://m.freebuf.com/articles/web/350628.html3、目录跳转绕过目录跳转符可以是.../,也可以是.../的ASCII编码或者unicode编码等,或者~/.%2E/%2F空格%20换行符%0a;4、"%00"或者“0x00"截断符绕过:%00和0x00会被解释......
  • 16环境变量、符号$、上传下载、解压压缩
    环境变量环境变量是一组信息记录,类型是KeyValue型(名称=值),用于操作系统运行的时候记录关键信息一系列命令其实本质上就是一个个的可执行程序:比如cd命令的本体就是:/usr/bin/cd这个程序文件环境变量PATH环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是命令的搜索路......
  • 上传图片前端使用base64数据格式展示,后端数据库存储二进制文件
    添加时上传图片upload.render({elem:'#docImg',url:Feng.ctxPath+'/doctor/upload'//改成您自己的上传接口,before:function(obj){//预读本地文件示例,不支持ie8obj.preview(function(index,file,result){......
  • V4L2应用程序开发(2)
    参考资料:韦东山第三期  V4L2获取数据的操作流程如下:打开设备ioctlVIDIOC_QUERYCAP:QueryCapbility,查询能力枚举格式、设置格式ioctlVIDIOC_REQBUFS:申请bufferioctlVIDIOC_QUERYBUF和mmap:查询buffer信息、映射ioctlVIDIOC_QBUF:把buffer放入"空闲链表"ioctlVIDIO......
  • 3. 文件上传漏洞——漏洞总结笔记
    一、文件上传漏洞前提条件:能上传webshell(若仅让上传图片,而又绕不过去,则不行)webshell路径可知(需要访问目标,不知道则访问不了)webshell 可以被访问webshell可以被解析(即可以显示页面;若返回页面直接显示代码,并没有解析)判断确认是什么过滤?上传任意......