微信小程序实现多张图片的一次性上传,删除,预览,点击按钮上传至云存储

本文主要是介绍微信小程序实现多张图片的一次性上传,删除,预览,点击按钮上传至云存储,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实现功能

  1. 实现从本地文件中一次选择上传多张图片
  2. 长按可删除图片
  3. 单击可预览图片
  4. 点击按钮上传至小程序云平台的云存储中(自行借鉴)

应用场景

租售、分享、交友等平台中图片的选择与上传

代码实例

  1. 效果图
    上传实例
  2. .wxml文件
<text class="word-class">上传图片实例:</text>
<!--以下为图片选择-->
<view class="img_box"><view class="imgs" wx:for="{{tempFilePaths}}" wx:key="index"><image src='{{item}}' bindlongpress="DeleteImg" bindtap="PreviewImg" data-index="{{index}}" mode='widthFix' /></view><view class="imgs"><view class="images" bindtap="ChooseImg"><!--这里自行创建image文件夹,并添加choose.png,及中部加号--><image src='./image/choose.png' mode='widthFix' /></view></view>
</view>
<!--以下为上传按钮,可自行借鉴-->
<view class="UploadBtnarea"><button class="UploadBtnclass" bindtap="UploadBtntap">上传图片</button>
</view>
  1. .wxss文件
/* 提示 */
.word-class{font-size: 14px;color: rgb(95, 87, 87);margin-left: 10px;
}
/* 选择图片 */
.img_box{width:690rpx;position:relative;display: flex;flex-wrap: wrap;margin:0 auto;padding-top: 20px;
}
.imgs{width:33.33333333%;display: flex;justify-content: center;margin-bottom:20rpx;
}
.imgs image{width:90%;max-height:212rpx;border:1px solid rgba(214, 212, 212, 0.1);
}
.imgs .images{position:relative;
}
.images button{width:100%;height:100%;position:absolute;top:0;left:0;
}
.img_box .images{width:90%;height: 212rpx;border:1px solid #E8E8E8;border-radius:4rpx;display: flex;align-items: center;justify-content: center;
}
.img_box .images>image{width:60rpx;height:60rpx;
}
/* 上传按钮 */
.UploadBtnarea{width: 100%;height: 32px;margin-top: 30px;margin-bottom: 10px;
}
.UploadBtnclass{height: 100%;width: 90%;background-color: rgb(5, 173, 5);color: white;align-self: center; font-size: 13px;
}
  1. .js文件
Page({data: {tempFilePaths: [],//以下为上传图片至云存储//images_fileID: [],},//选择图片ChooseImg: function () {let that = this;wx.chooseImage({count: 9, // 默认最多9张图片,可自行更改sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: res => {wx.showToast({title: '正在上传...',icon: 'loading',mask: true,duration: 1000})// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片let tempFilePath = res.tempFilePaths;that.setData({tempFilePaths: tempFilePath})}})},//预览图片PreviewImg: function (e) {let index = e.target.dataset.index;let that = this;//console.log(that.data.tempFilePaths[index]);//console.log(that.data.tempFilePaths);wx.previewImage({current: that.data.tempFilePaths[index],urls: that.data.tempFilePaths,})},//长按删除图片DeleteImg: function (e) {var that = this;var tempFilePaths = that.data.tempFilePaths;var index = e.currentTarget.dataset.index;//获取当前长按图片下标wx.showModal({title: '提示',content: '确定要删除此图片吗?',success: function (res) {if (res.confirm) {//console.log('点击确定了');tempFilePaths.splice(index, 1);} else if (res.cancel) {//console.log('点击取消了');return false;}that.setData({tempFilePaths});}})},// 上传图片至云数据库,可自行参考/*UploadBtntap: function (e) {var count = 0;var h = this.data.tempFilePaths.length;if (h != 0) {this.setData({images_fileID: []})}for (var i = 0; i < h; i++) {//上传文件var imageUrl = this.data.tempFilePaths[i].split("/");var name = imageUrl[imageUrl.length - 1];var images_fileID = this.data.images_fileID;wx.cloud.uploadFile({cloudPath: name,     //自定义云存储路径filePath: this.data.tempFilePaths[i],success: res => {images_fileID.push(res.fileID);this.setData({images_fileID: images_fileID         //更新data中的 fileID})fail: res => {count++;wx.hideToast();wx.showModal({title: '错误提示',content: '上传图片失败',showCancel: false,success: function (res) { }})}}});}}*/
})

以上便是上传图片实例的所有内容啦,原创不易,如需转载请注明原文作者及出处,谢谢!

这篇关于微信小程序实现多张图片的一次性上传,删除,预览,点击按钮上传至云存储的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788475

相关文章

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统