微信小程序实现图片上传,预览,删除
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 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...
随机推荐
- Codeforces Gym 101142 G Gangsters in Central City (lca+dfs序+树状数组+set)
题意: 树的根节点为水源,编号为 1 .给定编号为 2, 3, 4, …, n 的点的父节点.已知只有叶子节点都是房子. 有 q 个操作,每个操作可以是下列两者之一: + v ,表示编号为 v 的房子 ...
- 使用thymeleaf实现div中加载html
目标:固定顶部或者左侧导航,点击导航动态更新中间content区域的页面,也就是在放一个div在页面上,把html加载到div里,以前类似的实现都是通过Iframe或者js实现,在使用springbo ...
- 【题解】Uoj79一般图最大匹配
带花树裸题,感觉带花树强强……不会的勿看此文,解释的可能不对,只是给自己看的!!!如题,带花树即为求一般图最大匹配算法(匈牙利与dinic为二分图最大匹配).推荐论文:2015年<浅谈图的匹配算 ...
- [luogu5048] [Ynoi2019模拟赛] Yuno loves sqrt technology III
题目链接 洛谷. Solution 思路同[BZOJ2724] [Violet 6]蒲公英,只不过由于lxl过于毒瘤,我们有一些更巧妙的操作. 首先还是预处理\(f[l][r]\)表示\(l\sim ...
- [洛谷P5091]【模板】欧拉定理
题目大意:求$a^b\bmod m(a\leqslant10^9,m\leqslant10^6,b\leqslant10^{2\times10^7})$ 题解:扩展欧拉定理:$$a^b\equiv\b ...
- 【以前的空间】Poj 3071 Cut the Sequence
dp+单调性+平衡树 在看某篇论文中看到这道题,但是那篇论文不如这个http://www.cnblogs.com/staginner/archive/2012/04/02/2429850.html 大 ...
- POJ 2728 Desert King | 01分数规划
题目: http://poj.org/problem?id=2728 题解: 二分比率,然后每条边边权变成w-mid*dis,用prim跑最小生成树就行 #include<cstdio> ...
- 使用py-faster-rcnn训练VOC2007数据集时遇到问题
使用py-faster-rcnn训练VOC2007数据集时遇到如下问题: 1. KeyError: 'chair' File "/home/sai/py-faster-rcnn/tools/ ...
- ufw坑
ufw就是一个iptables的快捷应用.今天被这个给坑了. 一个同时没事随便修改ufw,结果ssh登陆不上,ldap什么的都被阻断了. 直接iptables -F,结果忘了修改policy,直接没法 ...
- xml 通过正则抓取字段
$str = '<xml> <appid><![CDATA[wxd49ea66070209a6e]]></appid> <bank_type> ...