微信小程序实现上传图片的功能

 更新时间:2021年08月13日 17:25:21   作者:半度℃温热  
这篇文章主要为大家详细介绍了微信小程序实现上传图片的功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序实现上传图片的具体代码,供大家参考,具体内容如下

效果图

WXML

<view class="img-wrap">
  <view class="txt">上传图片</view>
  <view class="imglist">
    <view class="item" wx:for="{{imgs}}" wx:key="item">
      <image src="{{item}}" alt=""></image>
      <view class='delete' bindtap='deleteImg' data-index="{{index}}">
        <image src="../../../images/icon.png"></image>
      </view>
    </view>
    <view class="last-item" wx:if="{{imgs.length >= 3 ? false : true}}" bindtap="bindUpload">
      <text class="sign">+</text>
    </view>
  </view>
</view>

JS

data: {
  imgs: [],
  count: 3
},
bindUpload: function (e) {
  switch (this.data.imgs.length) {
    case 0:
      this.data.count = 3
      break
    case 1:
      this.data.count = 2
      break
    case 2:
      this.data.count = 1
      break
  }
  var that = this
  wx.chooseImage({
    count: that.data.count, // 默认3
    sizeType: ["original", "compressed"], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ["album", "camera"], // 可以指定来源是相册还是相机,默认二者都有
    success: function (res) {
      // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
      var tempFilePaths = res.tempFilePaths
      for (var i = 0; i < tempFilePaths.length; i++) {
        wx.uploadFile({
          url: 'https://graph.baidu.com/upload',
          filePath: tempFilePaths[i],
          name: "file",
          header: {
            "content-type": "multipart/form-data"
          },
          success: function (res) {
            if (res.statusCode == 200) {
              wx.showToast({
                title: "上传成功",
                icon: "none",
                duration: 1500
              })

              that.data.imgs.push(JSON.parse(res.data).data)

              that.setData({
                imgs: that.data.imgs
              })
            }
          },
          fail: function (err) {
            wx.showToast({
              title: "上传失败",
              icon: "none",
              duration: 2000
            })
          },
          complete: function (result) {
            console.log(result.errMsg)
          }
        })
      }
    }
  })
},
// 删除图片
deleteImg: function (e) {
  var that = this
  wx.showModal({
    title: "提示",
    content: "是否删除",
    success: function (res) {
      if (res.confirm) {
        for (var i = 0; i < that.data.imgs.length; i++) {
          if (i == e.currentTarget.dataset.index) that.data.imgs.splice(i, 1)
        }
        that.setData({
          imgs: that.data.imgs
        })
      } else if (res.cancel) {
        console.log("用户点击取消")
      }
    }
  })
}

WXSS

.wrap {
  width: 100%;
  padding: 0 30rpx;
  box-sizing: border-box;
}
.wrap .img-wrap {
  font-size: 30rpx;
  color: #33373E;
  margin-bottom: 10rpx;
}
.wrap .img-wrap .txt {
  margin-bottom: 20rpx;
}
.wrap .img-wrap .imglist {
  display: flex;
  flex-wrap: wrap;
}
.wrap .img-wrap .imglist .item {
  width: 150rpx;
  height: 150rpx;
  margin-right: 22rpx;
  margin-bottom: 10rpx;
  position: relative;
}
.wrap .img-wrap .imglist .last-item {
  width: 150rpx;
  height: 150rpx;
  text-align: center;
  line-height: 146rpx;
  border: 2rpx dashed #8B97A9;
  box-sizing: border-box;
}
.wrap .img-wrap .imglist .item image {
  width: 100%;
  height: 100%;
}
.wrap .img-wrap .imglist .item .delete {
  width: 30rpx;
  height: 30rpx;
  position: absolute;
  top: -14rpx;
  right: -12rpx;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 手写TypeScript 时很多人常犯的几个错误

    手写TypeScript 时很多人常犯的几个错误

    这篇文章主要介绍了手写TypeScript 时很多人常犯的几个错误,文章围绕主题展开详细的内容介绍,具有一定的抽卡,重要的朋友可以参考一下
    2022-09-09
  • JavaScript 一道字符串分解的题目

    JavaScript 一道字符串分解的题目

    要求用js写一个函数,对传入的形如下网址字符串,返回对应的对象。
    2011-08-08
  • 基于javascript的无缝滚动动画实现2

    基于javascript的无缝滚动动画实现2

    这篇文章主要介绍了基于javascript的无缝滚动动画实现2,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 微信小程序使用字体图标的方法

    微信小程序使用字体图标的方法

    这篇文章主要为大家详细介绍了微信小程序使用字体图标的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 使用微信小程序API,调用微信的各种内置能力。

    使用微信小程序API,调用微信的各种内置能力。

    微信小程序如何使用小程序API,去调用微信提供的各种内置能力(即微信API)。小程序开发框架提供丰富的微信原生API,可以方便的调起微信提供的能力,如获取用户信息,本地存储,支付功能等。
    2022-12-12
  • JavaScript数组类型Array相关的属性与方法详解

    JavaScript数组类型Array相关的属性与方法详解

    这篇文章主要给大家介绍了关于JavaScript数组类型Array相关的属性与方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • WebPack工具运行原理及入门教程

    WebPack工具运行原理及入门教程

    这篇文章主要介绍了WebPack工具运行原理及入门教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • JavaScript仿静态分页实现方法

    JavaScript仿静态分页实现方法

    这篇文章主要介绍了JavaScript仿静态分页实现方法,可实现模拟静态效果的分页功能,并且可以控制分页的字符数,使用时可根据情况进行相应的字段修改即可,非常灵活实用,需要的朋友可以参考下
    2015-08-08
  • 微信小程序输入多行文本的实战记录

    微信小程序输入多行文本的实战记录

    多行输入框组件是原生组件,这篇文章主要给大家介绍了关于微信小程序输入多行文本的相关资料,文中通过实例代码介绍的介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码

    EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码

    这篇文章主要介绍了EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码 的相关资料,需要的朋友可以参考下
    2016-06-06

最新评论