小程序图片上传,预览,删除功能

引言:微信小程序有一个专门上传图片的Api——uploader,但是此组件只适用于单张图片的上传。在实际操作过程中,会涉及到多图上传以及图片相关的其他的功能的实现。那么,接下来我就简单介绍一下其中的多张图片上传和图片删除以及预览功能

html部分

<viewclass="flex-wrap">
	 <view class="iconfont icon-camera" bindtap='upload' wx:if="{{imgArr.length < 5}}"></view>
		 <view class="relative" wx:for="{{imgArr}}" wx:key="item">
	 	 	<text class="iconfont icon-guanbi color-style" data-index='{{index}}' catchtap='deleteImg'></text>
		  <image mode="aspectFit" src="{{item}}" bindtap="preview" data-src="{{item}}" alt="图片"/>
	 </view>
</view>

css部分

.flex-wrap{
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
}
.icon-guanbi.color-style {
    color: #000;
    font-size: 40rpx;
    position: absolute;
    right: 4rpx;
    top: 4rpx;
    font-size: 80rpx;
    color: #fff;
}
.icon-camera{
    color: #6C6F82;
}
.icon-camera, .flex-wrap image{
    font-size: 72rpx;
    border: 2rpx solid #eee;
    border-radius: 20rpx;
    width: 156rpx;
    height: 156rpx;
    text-align: center;
    line-height: 156rpx;
    margin-top: 20rpx;
    margin-right: 20rpx;
}
.flex-wrap .relative{
    position: relative;
}

js代码


data: {
   imgArr: []
}

  //选择要上传的图片
  upload () {
    var that = this;
    // 最好只能选5张
    if (that.data.imgArr&&that.data.imgArr.length < 5) {
      wx.chooseImage({
        count: 5 - that.data.imgArr.length, // 默认9
        sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
        sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
        success: (res) => {
          that.setData({
            imgArr: that.data.imgArr.concat(res.tempFilePaths)
          })
        }
      })
    } else {
      wx.showToast({
        title: '最多上传五张图片',
        icon: 'none',
        duration: 3000
      });
    }
  },
   // 预览图片,放大预览
   preview(event) {
    console.log(event.currentTarget.dataset.src)
    let currentUrl = event.currentTarget.dataset.src
    wx.previewImage({
      current: currentUrl, // 当前显示图片的http链接
      urls: this.data.imgArr // 需要预览的图片http链接列表
    })
  },
  // 删除图片
  deleteImg (e) {
    var that=this;
    var index = e.currentTarget.dataset.index;
    const pictureArr = that.data.imgArr[index].split('/')
    that.data.imgArr.splice(index, 1)
    that.setData({
       imgArr: that.data.imgArr || []
    })
  }

​​​
在这里插入图片描述

扫描二维码识别添加小站,或者关注微信公众号前端e站。

1、如果你有好的技术文章。

2、如果你有需要的技术分享主题。

3、如果你有面试上的问题(包括简历、面试题),那就快来联系小站吧!

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端e站

如果有所帮助,欢迎来杯奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值