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

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

实现功能

  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

相关文章

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Linux命令rm如何删除名字以“-”开头的文件

《Linux命令rm如何删除名字以“-”开头的文件》Linux中,命令的解析机制非常灵活,它会根据命令的开头字符来判断是否需要执行命令选项,对于文件操作命令(如rm、ls等),系统默认会将命令开头的某... 目录先搞懂:为啥“-”开头的文件删不掉?两种超简单的删除方法(小白也能学会)方法1:用“--”分隔命

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

Python实现自动化删除Word文档超链接的实用技巧

《Python实现自动化删除Word文档超链接的实用技巧》在日常工作中,我们经常需要处理各种Word文档,本文将深入探讨如何利用Python,特别是借助一个功能强大的库,高效移除Word文档中的超链接... 目录为什么需要移除Word文档超链接准备工作:环境搭建与库安装核心实现:使用python移除超链接的

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv