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

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

实现功能

  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

相关文章

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

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