微信小程序实现图片上传,预览,删除
wxml:
<view class='imgBox'>
<image class='imgList' wx:for="{{imgs}}" wx:for-item="item" src='{{item}}' data-index="{{index}}" wx:key="*this" bindtap="previewImg">
<icon class='imgCancel' type="clear" size='25' data-index="{{index}}" catchtap="deleteImg"></icon>
</image>
<image src='../../images/ic_pic.png' bindtap='addImg' wx:if="{{isShowAdd}}" ></image>
</view>
wxss:
.imgBox{
padding: 25rpx 0rpx;
}
.imgBox image{
width: 200rpx;
height: 200rpx;
margin-right: 15rpx;
}
.imgBox .imgList{
position: relative;
}
.imgBox .imgList .imgCancel{
position: absolute;
top: 0rpx;
right: 0rpx;
}
js:countNum 和 max值可根据自己的需求更改,但是二者的值须相同
Page({
data: {
isShowAdd:true,
imgs: [],
countNum:3, //设定一次性选择图片的上限值
max:3 //设定上传图片总数的上限值,与countNum相同
},
//添加图片
addImg: function (e) {
var that = this;
wx.chooseImage({
count: that.data.countNum, // 上传图片上限值
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: res => {
wx.showToast({
title: '正在上传...',
icon: 'loading',
mask: true,
duration: 1000
})
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
var tempFilePaths = res.tempFilePaths;
var imgs=that.data.imgs;
for (var i = 0; i < tempFilePaths.length; i++) {
if (imgs.length >= that.data.max) {
that.setData({
imgs: imgs
});
return false;
} else {
imgs.push(tempFilePaths[i]);
//上传图片达到上限count值时,隐藏添加按钮
if (imgs.length >= that.data.max){
that.setData({
isShowAdd: false
});
}
}
}
that.setData({
imgs: imgs,
countNum: that.data.max-imgs.length //每增加一张图片,动态计算还可添加照片的数量
})
}
})
},
// 预览图片
previewImg: function (e) {
//获取当前图片的下标
var index = e.currentTarget.dataset.index;
//所有图片
var imgs = this.data.imgs;
wx.previewImage({
//当前显示图片
current: imgs[index],
//所有图片
urls: imgs
})
},
// 删除图片
deleteImg: function (e) {
console.log("删除图片")
var imgs = this.data.imgs;
var index = e.currentTarget.dataset.index;
imgs.splice(index, 1);
this.setData({
imgs: imgs,
countNum: this.data.max-imgs.length
})
if(imgs.length<this.data.max){
this.setData({
isShowAdd: true
})
}
},
})
效果展示:
1 )图片未达上限
2 )图片已达到上限,隐藏添加按钮(ic_pic.png)
微信小程序实现图片上传,预览,删除的更多相关文章
- 微信小程序--背景图片手机无法预览
目前小程序好像没有支持手机预览背景本地图片,所以将本地图片改为网络图片链接就可以了 background: url("https://..../img/no.png") no-re ...
- [转]微信小程序实现图片上传功能
本文转自:http://blog.csdn.net/feter1992/article/details/77877659 前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何 ...
- nodeJs实现微信小程序的图片上传
今天我来介绍一下nodejs如何实现保存微信小程序传过来的图片及其返回 首先wx.uploadFile绝大部分时候是配合wx.chooseImage一起出现的,毕竟选择好了图片,再统一上传是实现用户图 ...
- 微信小程序实现图片上传功能
前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...
- 微信小程序--实现图片上传
前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...
- 微信小程序中图片上传阿里云Oss
本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发.最近工作遇到一个小问题. 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意去记录一下. 第一步:配置阿里云地址: 我 ...
- 微信小程序 实现图片上传并展示到前端(多文件)并实现表单提交验证
链接: https://blog.csdn.net/guanj0623/article/details/121595884?spm=1001.2014.3001.5501 https://blog.c ...
- 小程序实现图片上传,预览以及图片base64位处理
最近一段时间在做小程序项目,第一期功也完工了.需要好好总结一下经验,把项目中遇到的问题好好总结一下,遇到的问题,踩过的坑.今天写一个小程序实现图片上传,预览,以及删除,图片base64位处理.下面就是 ...
- ASP.NET工作笔记之一:图片上传预览及无刷新上传
转自:http://www.cnblogs.com/sibiyellow/archive/2012/04/27/jqueryformjs.html 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...
随机推荐
- Python 源码剖析(三)【字符串对象】
三.字符串对象 1.PyStringObject与PyString_Type 2.创建PyStringObject对象 3.Intern 机制 4.字符缓冲池 5.PyStringObject 效率相 ...
- IO模式
二 IO模式 刚才说了,对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间.所以说,当一个read操作发生时,它会经历两 ...
- [NOIP2017]逛公园 最短路图 拓扑序DP
---题面--- 题解: 挺好的一道题. 首先我们将所有边反向,跑出n到每个点的最短路,然后f[i][j]表示从i号节点出发,路径长比最短路大j的方案数. 观察到,如果图中出现了0环,那么我们可以通过 ...
- [六省联考2017]分手是祝愿 期望DP
表示每次看见期望的题就很懵逼... 但是这题感觉还是值得一做,有可借鉴之处 要是下面这段文字格式不一样的话(虽然好像的确不一样,我也不知道为什么,是直接从代码里面复制出来的,因为我一般都是习惯在代码里 ...
- 【BZOJ1486】最小圈(分数规划)
[BZOJ1486]最小圈(分数规划) 题面 BZOJ 洛谷 求图中边权和除以点数最小的环 题解 分数规划 二分答案之后将边权修改为边权减去二分值 检查有无负环即可 #include<iostr ...
- BZOJ2038:[2009国家集训队]小Z的袜子——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找 ...
- luoguP1357 花园
矩阵乘法优化dp 注意环形处理: 发现,对于一个初始状态s的方案数,就是填n次后,再回到自己的状态.期间都是合法的话,那么一定这个方案就合法. 和开始状态有关.所以先把状态转移矩阵的(n-m)乘出来. ...
- JavaScript随机数生成方法
实现随机数是各种编程语言都很常见的一个编程任务,下面介绍一下在JavaScript如何实现随机数.第一中方法通过重写Math.random方法实现,第二种方法改自一个C实现,都可以实现编程目的. 直接 ...
- SPOJ - DETER3:Find The Determinant III (求解行列式)
Find The Determinant III 题目链接:https://vjudge.net/problem/SPOJ-DETER3 Description: Given a NxN matrix ...
- ACM3790迪杰斯特拉算法运用
最短路径问题 Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的 ...