最近在做微信小程序,遇到上传多张图片到服务器,计算上传图片的张数,并且可以手动删除图片,下面是效果图
效果图:
本来用的是小程序提供的 mp-uploader 上传图片的组件,无奈次组件删除效果不是我想要的,只能用 wx.chooseImage进行上传图片,在使用uplaodFile将图片发送给后台服务器。
下面直接展示代码:
wxml:
<view class="con_titles"> <view class="con_left"> <image src="/UploadFiles/2021-04-02/comint.png">wxss:
/* 上传图片 */ .images-boxc { position: relative; border: dashed 1px #bfbfbf; width: 139rpx; height: 139rpx; margin-right: 32rpx; margin-bottom: 32rpx; } .delete-image { position: absolute; width: 30rpx; height: 30rpx; right: 16rpx; top: 16rpx; } .add-image { display: flex; flex-wrap: wrap; } .image_size { width: 139rpx; height: 139rpx; } .image_sizen { height: 142rpx; }js:
data: { count: 6, //设置最多6张图片 allImg: [], imgShow: [], }, // 上传图片 chooseImage: function() { wx.showLoading({ title: '加载中...', mask: true }) var that = this; var imgShow = that.data.imgShow; var count = that.data.count - imgShow.length; //设置最多6张图片 wx.chooseImage({ count: count, sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function(res) { console.log(res) that.uplaodFile(res) for (var i = 0, h = res.tempFilePaths.length; i < h; i++) { imgShow.push(res.tempFilePaths[i]); that.setData({ imgShow: imgShow }) } wx.hideLoading({ title: '加载中...', mask: false }) } }) }, // 删除图片 deleteImage(e) { let self = this; let index = e.target.dataset.index; let imgShow = self.data.imgShow; let allImg = self.data.allImg; allImg.splice(index, 1); imgShow.splice(index, 1); this.setData({ imgShow: imgShow, allImg: allImg }) }, previewImage: function(e) { console.log(this.data.files) wx.previewImage({ current: e.currentTarget.id, // 当前显示图片的http链接 urls: this.data.files // 需要预览的图片http链接列表 }) }, selectFile(files) { console.log('files', files) // 返回false可以阻止某次文件上传 }, uplaodFile(files) { console.log('upload files', files) let that = this files.tempFilePaths.forEach(element => { util.uploadFile('/fastdfsServer/fileUpload', element, 'file', {}, function(res) { //上传本地图片地址到服务器 返回地址 存放到input提交时取值 res = JSON.parse(res); if (res.responseCode == 0) { sysMsg.sysMsg("上传成功", 1000, 'success'); that.setData({ allImg: that.data.allImg.concat(res.responseBody) }); } else { sysMsg.sysMsg("上传失败", 1500, 'error'); } }); }); // 文件上传的函数,返回一个promise return new Promise((resolve, reject) => { resolve({ urls: files.tempFilePaths }); setTimeout(() => { reject('some error') }, 10000) }) }, uploadError(e) { console.log('upload error', e.detail) }, uploadSuccess(e) { // this.setData({ // allImg: this.data.allImg.concat(e.detail.urls[0]) // }); console.log('upload success', e.detail, e.detail.urls) },为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 2019明达发烧碟MasterSuperiorAudiophile[WAV+CUE]
- 蔡幸娟.1993-相爱容易相处难【飞碟】【WAV+CUE】
- 陆虎.2024-是否愿意成为我的全世界【Hikoon】【FLAC分轨】
- 关淑怡.2009-ERA【星娱乐】【WAV+CUE】
- 林忆莲《关于她的爱情故事》2022新世纪MQA 24K金碟限量版[WAV+CUE]
- 张雨生1993《一天到晚游泳的鱼》台湾G字首版[WAV+CUE][1G]
- 群星《试音五大女声》[WAV+CUE][1G]
- 魔兽世界wlk武器战一键输出宏是什么 wlk武器战一键输出宏介绍
- 魔兽世界wlk狂暴战一键输出宏是什么 wlk狂暴战一键输出宏介绍
- 魔兽世界wlk恶魔术士一键输出宏是什么 wlk恶魔术士一键输出宏介绍
- 医学爱好者狂喜:UP主把医学史做成了格斗游戏!
- PS5 Pro评分解禁!准备升级入手吗?
- 我们盘点了近期火热的国产单机游戏!《琉隐神渡》等 你期待哪款?
- 2019年第12届广州影音展双碟纪念版ADMS2CD[MP3/WAV]
- 黄安《救姻缘》台首版[WAV+CUE]