微信小程序图片上传并展示,vant组件+wx.uploadFile

微信小程序图片上传并展示,vant组件+wx.uploadFile

实现功能:图片展示+上传服务器+删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5ygJP7G-1675862851707)(C:\Users\28132\AppData\Roaming\Typora\typora-user-images\1675862815144.png)]

//xwml部分: vant的Uploader功能 
<van-cell use-label-slot custom-style="padding-bottom: 0" title="问题附件" border="{{false}}">
        <view class="uploader" slot="label" style="margin-top: 20rpx;">
          <van-uploader bind:after-read="getAttachment"  bind:delete="delAttachment" deletable="{{true}}" preview-size="100" file-list="{{ attachment }}" />
        </view>
      </van-cell>

<van-uploader> 组件 图片上传

  • bind:after-read 事件 选中图片触发的事件

  • deletable 开启右上角的删除按钮,默认是true

  • bind:delete 删除触发的事件

  • file-list 遍历的图片 是数组对象类型 :通过向组件传入file-list属性,可以绑定已经上传的图片列表,并展示图片列表的预览图,以下是filelist的结构:

    •  fileList: [
            {
              url: 'https://img.yzcdn.cn/vant/leaf.jpg',
              name: '图片1',
            },
            // Uploader 根据文件后缀来判断是否为图片文件
            // 如果图片 URL 中不包含类型信息,可以添加 isImage 标记来声明
            {
              url: 'http://iph.href.lu/60x60?text=default',
              name: '图片2',
              isImage: true,
              deletable: true,
            },
          ],
      

js部分: 配合微信小程序的上传文件API完成图片的上传

	data:{
	 attachment: [],
	},
 // 获取上传的照片
  getAttachment({ detail: { file } }) {
    wx.uploadFile({
      url: wx.http.baseURL + '/upload', 
      filePath: file.url,
      name: 'file',
      header: {
        Authorization: 'Bearer ' + getApp().token
      },
      success: (res) => {
        this.data.attachment.push(JSON.parse(res.data).data)
        this.setData({
          attachment: this.data.attachment
        })
      }
    })
  },
      
//删除
  delAttachment({ detail }) {
    const attachment = this.data.attachment.filter((item, index) => index !== detail.index)
    this.setData({
      attachment
    })
  },      

wx.uploadFile 是微信小程序提供的API ,用于将本地资源上传到服务器.

官方地址:
https://developers.weixin.qq.com/miniprogram/dev/api/network/upload/wx.uploadFile.html

  1. 在成功的回调函数里注意返回的res.data是字符串,这里需要用JSON.parse转换成对象
  2. 由于attachment在data中是数组,这里需要将每一次上传的图片的信息(对象)存入进去,我这里用push推入数组,由于此时往数据添加数据,由于是单向数据流,所以后面又用了this.setData来模拟双向数据流绑定
  3. 在删除时,delete方法提供的回调里有删除的index可以让我们来对数组进行操作,这里用filter过滤来处理
    1. 官网地址:https://vant-contrib.gitee.io/vant-weapp/#/uploader
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
微信小程序中使用 Vant 组件库的侧边导航栏滚动,需要首先在项目中引入 Vant 组件库,并且按照 Vant 的文档进行组件的配置和使用。 首先,在项目根目录下的 `app.json` 文件中配置 Vant 组件的全局样式,示例如下: ```json { "style": "vant-weapp/dist/common/index" } ``` 然后在需要使用侧边导航栏滚动的页面中引入 Vant 的侧边导航栏组件,并按照需求设置好相关属性和事件,示例如下: ```html <van-sidebar show="{{ true }}" width="200rpx" :style="height: 100vh;"> <van-sidebar-item v-for="(item, index) in menuList" :key="index" :title="item.title" :dot="item.dot" :badge="item.badge" /> </van-sidebar> ``` 其中,`show` 属性用于控制侧边导航栏的显示与隐藏,`width` 属性用于设置导航栏的宽度,`:style` 属性用于设置导航栏的高度为可视区域的高度。 此外,需要根据实际需求在 `data` 数据中定义 `menuList` 数组,并为每个侧边导航栏项设置相应的标题、角标和小红点。 最后,在页面的生命周期函数中,通过监听滚动事件来实现侧边导航栏的滚动效果,示例如下: ```javascript Page({ onScroll: function(event) { // 根据滚动位置处理侧边导航栏的样式 } }) ``` 在监听滚动事件中,可以根据滚动位置来处理侧边导航栏的样式,例如高亮当前正在滚动的导航项。 总结起来,要在微信小程序中使用 Vant 组件库的侧边导航栏滚动,需要首先引入 Vant 组件库并进行配置,然后在页面中按照需求引入侧边导航栏组件并设置相应的属性和事件,最后在监听滚动事件中处理导航栏的样式即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个大萝北

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值