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

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

实现功能

  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

相关文章

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

mybatisplus的逻辑删除过程

《mybatisplus的逻辑删除过程》:本文主要介绍mybatisplus的逻辑删除过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录myBATisplus的逻辑删除1、在配置文件中添加逻辑删除的字段2、在实体类上加上@TableLogic3、业务层正常删除即