小程序上传图片+Vant(可一次传多张图片)

这篇具有很好参考价值的文章主要介绍了小程序上传图片+Vant(可一次传多张图片)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:小程序端上传图片,可一次传多张照片、预览、删除。

问题:vant写的对我这种没有基础的人来说,确实有点头疼,参考了这篇参考链接,然后根据需求改了改。

实现结果:

before-read 小程序,微信小程序,小程序

代码

wxml:

<!-- 传图片 -->
<view class="addImage" >
      <van-uploader 
      file-list="{{ fileList }}" 
      accept="image" 
      max-count="9" 
      multiple
      bind:after-read="afterRead" 
      bind:delete="deleteImg" 
      bind:before-read="beforeRead"
      deletable="{{ true }}"
      preview-size="{{(width+50)/4 }}" />
</view>

js:后端部分,请根据自己后端接口修改

//文件读取完成后
afterRead(event) {
    const { file } = event.detail;    
    var that = this
    const fileList = that.data.fileList
    //获得这次上传的图片数量,上传时避免重复上传之前传过的文件
    const thisNum = file.length 
    const beforeNum = fileList.length 
    const totalNum = thisNum + beforeNum
    //还没上传时将选择的图片的上传状态设置为加载    
    for (let j = 0; j < thisNum; j++) {
      file[j].status='uploading'
      fileList.push(file[j])
    }
    that.setData({ fileList })
    // console.log('fileList',that.data.fileList)
    // console.log('file',file)
    //上传服务器
    for (let i = beforeNum; i < totalNum; i++) {
          that.uploadImg(i,that.data.fileList[i].url )
    }
  },

js:文章来源地址https://www.toymoban.com/news/detail-516885.html

  uploadImg(fileListIndex,fileURL) {
    var that = this
    //上传文件
    const filePath = fileURL // 小程序临时文件路径
    // console.log("filePath",filePath)
    wx.uploadFile({
      url: '后端地址',
      filePath: filePath,
      name: 'file',
      header: {
        "Content-Type": "multipart/form-data",
      },
      formData: { 
        fileType:'image',
        reName:'true',
        thumbnail:'true'
      },
      success(res) {
      var tem = JSON.parse(res.data)
      // 上传完成需要更新 fileList
      that.setData({
        [`fileList[${fileListIndex}].url`]: tem.data.fileUrl,
        [`fileList[${fileListIndex}].status`]: 'done'
      })
      wx.showToast({ title: '上传成功', icon: 'none' })

      },
      fail: function (res) {
        console.log("file upload fail")
      },
    })
  },

到了这里,关于小程序上传图片+Vant(可一次传多张图片)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java】如何通过一次请求获取多张图片

    背景:一次请求响应一张图片 这是我们熟练的业务,就是用户访问我们编写的接口,后端服务就响应一张图片给网页,也就是一个url对应的就是一个图片资源 下面是具体的业务代码和注释 编写完这些代码后运行后端服务,然后我们在网页上访问这个接口  图片成功的在网页

    2024年02月07日
    浏览(32)
  • Java 图片渲染到前端,向前端一次返回多张Base64图片

    当我们从服务器读取的图片链接返回给前端,前端可以很轻松的下载和展示,但是对于临时文件,我们不需要保存到服务器,比如PPT转图片,PDF转图片等等,我们需要直接返回给前端,对于一张图片可以使用flush()渲染到前端,多张图片可以把图片编码成Base64,并存储到数组中

    2024年02月09日
    浏览(28)
  • uniapp实现上传图片添加日期和地点水印,修复多张图片同时上传,显示相同图片问题

    整体实现流程:首先调用 uni.chooseImage 方法,配置count、sizeType、sourceType参数,分别代表选择的图片个数、original 原图,compressed 压缩图,默认二者都有、是从相册还是拍照。 然后在成功的回调中拿到上传的所有图片并存储。然后就是添加水印,调用 uni-getImageInfo 拿图片信息,

    2024年02月12日
    浏览(44)
  • element ui 多张图片上传、回显、删除

    前端文件上传 1、展示部分 2、方法部分 3.函数部分 表单提交时的操作 这个写的有点长,大家挑选自己用的到的部分复制修改一下就行 后端文件上传 1.controoler部分

    2024年02月09日
    浏览(26)
  • layui选择多张图片上传多图上传到服务器保存

    多图上传在一些特殊的需求中我们经常会遇到,其实多图上传的原理大家都有各自的见解。对于Layui多图上传和我之前所说的通过js获取文本框中的文件数组遍历提交的原理一样,只不过是Layui中的upload.render方法已经帮我们封装好了,我们只管调用即可,也就是说你选中了几张

    2024年02月16日
    浏览(28)
  • Vant Uploader 上传图片功能

    限制上传数量 通过 max-count 属性可以限制上传文件的数量,上传数量达到限制后,会自动隐藏上传区域。 限制上传大小 通过 max-size 属性可以限制上传文件的大小,超过大小的文件会被自动过滤,文件信息通过 oversize 事件获取。 文件上传前进行校验和处理 通过before-read 传入

    2024年02月16日
    浏览(27)
  • vue3 vant上传图片

    在 Vue 3 中使用 Vant 组件库进行图片上传,您可以使用 Vant 的 ImageUploader 组件。ImageUploader 是 Vant 提供的图片上传组件,可以方便地实现图片上传功能。 以下是一个简单的示例,演示如何在 Vue 3 中使用 Vant 的 ImageUploader 组件进行图片上传:   首先,确保您已经安装并配置了

    2024年02月15日
    浏览(24)
  • uniapp中的uni-file-picker组件上传多张图片到服务器,可添加,预览,删除图片

    前言:在uniapp官方文档中的uni-file-picker组件可实现图片上传功能,官方文档:uniapp官网 中的案例不能完全满足需求,官网中默认的是上传到自带的服务空间 以下是代码: view代码: :auto-upload=\\\"false\\\"加上这个取消自动上传 methods方法 选择图片 上传图片 删除图片 上传事例: 参

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包