vant-uploader多附件上传

这篇具有很好参考价值的文章主要介绍了vant-uploader多附件上传。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

van-uploader上传组件遇到的问题

问题一:部分安卓机只有相机和录音选项,没有相册选项。

解决:accept=“image/*”

问题二:移动端上组件只能上传图片,没有文件管理选项,不能上传其他文件类型(pdf, docx等)

解决:accept=“” // 不限制上传的文件类型

     <van-uploader
            :disabled="disabledimg"
            style="width: 100%"
            preview-size="100"
            :after-read="afterReadSQ"
        
            v-model="fileList"
            multiple
            :max-count="12"
            :max-size="10000 * 1024"
            @oversize="onOversize"
            :before-delete="beforedelete"
            accept=""
          >
            <el-button :loading="loading" size="small" type="primary">上传附件</el-button>
          </van-uploader>

vant-uploader多附件上传文章来源地址https://www.toymoban.com/news/detail-513480.html

:before-read=“beforeRead” 可以把这个属性去掉 或者在里面判断 上传的文本类型

代码

  数据
      disabledimg: false,
      filelist: [],

 方法
    // beforeRead(file) {
    //   console.log('file111', file)
    //   if (file.length) {
    //     console.log('1')
    //     file.forEach(item => {
    //       console.log('2', item)
    //       if (item.type === 'image/jpeg' || item.type === 'image/png' || item.type === 'image/jpg') {
    //         return true
    //       } else {
    //         Toast('请上传 jpg/png/ 格式图片')
    //         return false
    //       }
    //     })
    //     return true
    //   } else {
    //     if (file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/jpg') {
    //       return true
    //     } else {
    //       Toast('请上传 jpg/png/ 格式图片')
    //       return false
    //     }
    //   }
    // },
    onConfirm(value) {
      console.log('vvvv', value)
      this.value = value.text
      this.showPicker = false
    },
    deleteimg(file) {
      // console.log('deleteimg', file)
      // console.log('fileList', this.fileList)
      // this.fileList = []
      // this.filelist = []
      // this.imgidlist = []
    },
    beforedelete(file, index) {
      if (this.disabledimg) {
        return false
      } else {
        console.log('删除', file, index)
        this.imgidlist.splice(index.index, 1)
        this.filelist.splice(index.index, 1)
        // this.fileList.splice(index, 1)
        console.log('this.imgidlist', this.imgidlist)

        return true
      }
    },

    // 员工诉求 上传图片/文件
    afterReadSQ(file) {
      console.log(file, '====after-read')
      // return
      this.disabledimg = true
      this.filelist.push(file)
      console.log('获取图片信息', this.filelist)
      console.log('ff', file)
      if (file.length) {
        file.forEach(element => {
          element.status = 'uploading'
          element.message = '上传中...'
        })
      } else {
        file.status = 'uploading'
        file.message = '上传中...'
      }

      const FormDatas = new FormData()
      // FormDatas.append('file', file.file)
      if (this.filelist.length > 1) {
        if (this.filelist[1].length) {
          console.log('0111')
          this.filelist[1].forEach(item => {
            console.log('01111', item)
            FormDatas.append('file', item.file)
          })
        } else {
          console.log('0222')
          this.filelist.forEach(item => {
            FormDatas.append('file', item.file)
          })
        }
      } else {
        if (this.filelist[0].length) {
          // 多个上传
          console.log('111')
          this.filelist[0].forEach(item => {
            console.log('1111', item)
            item.file.status = 'uploading'
            item.file.message = '上传中...'
            FormDatas.append('file', item.file)
          })
        } else {
          console.log('222')
          this.filelist.forEach(item => {
            FormDatas.append('file', item.file)
          })
        }
      }

      // console.log(FormDatas.get('file'))
      //  return
      // 上传图片
      workerOrderFtpReturnUrl(FormDatas)
        .then(res => {
          // debugger
          if (res.code == '000000') {
            if (file.length) {
              file.forEach(element => {
                element.status = 'done'
                element.message = '上传成功'
              })
            } else {
              this.imgidlist = []
              file.status = 'done'
              file.message = '上传成功'
            }
            console.log('获取图片data', res.data)
            file.status = 'done'
            file.message = '上传成功'
            res.data.forEach(element => {
              this.imgidlist.push(element.fileUrl)
            })

            this.disabledimg = false
            // console.log('imgidlist99999999999999999999', this.imgidlist)
          } else {
            this.disabledimg = false
            Toast(res.mesg)
            if (file.length) {
              file.forEach(element => {
                element.status = 'failed'
                element.message = '上传失败'
              })
            } else {
              file.status = 'failed'
              file.message = '上传失败'
            }
            // file.status = 'failed'
            // file.message = '上传失败'
          }
        })
        .catch(err => {
          this.disabledimg = false
          Toast('上传失败')
          file.status = 'failed'
          file.message = '上传失败'
        })

      // setTimeout(() => {
      //   file.status = 'failed'
      //   file.message = '上传失败'
      // }, 1000)
    },

到了这里,关于vant-uploader多附件上传的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • React antd如何实现<Upload>组件上传附件再次上传已清除附件缓存问题

    最近遇到一个React上传组件的问题,即上传附件成功后,文件展示处仍然还有之前上传附件的缓存信息,需要解决的问题是,要把上一次上传的附件缓存在上传成功或者取消后,可以进行清除 经过一顿试错,终于解决了这个问题。 showUploadList,是可选参数,即是否展示upload

    2024年02月04日
    浏览(59)
  • 【微信小程序】Vant Weapp 组件 uploader文件上传

    wxml中: json中: js中:

    2024年02月16日
    浏览(63)
  • vant 组件van-tabbar实现底部导航

    移动端小白,首次尝试移动H5开发,使用vant2的van-tabbar实现底部导航功能。本文忽略vant使用步骤,项目中使用全局引用。由于查询很多文章有的过于复杂,有的功能未实现,所以简单整理如有问题欢迎留言改正。 底部导航栏简单实现,需要注意的是,组件是需要在所有需要使

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

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

    2024年02月16日
    浏览(44)
  • 微信小程序基于vant和springboot实现附件上传和预览

    图片上传和预览在移动端应用非常广泛和频繁,vant组件库van-uploader组件已经帮我们实现了大部分功能,但是在系统中频繁使用还是有点麻烦,我们根据自身的业务系统重新封装了一下简化我们的开发。后端使用springboot集成jcifs实现文件管理微服务。 附件上传 附件预览 组件介

    2024年02月09日
    浏览(58)
  • vant 组件,时间选择器的应用 van-datetime-picker

    如图, 点击箭头弹出时间选择器, 选完时间后显示在页面       最后visitTime传参是字符串    \\\"2023-01-17 17:43\\\"

    2024年02月03日
    浏览(52)
  • vue element el-upload附件上传、在线预览、下载当前预览文件

    上传 在线预览(iframe): payload: response: 全部代码: 初版–01

    2024年02月14日
    浏览(58)
  • Vant Uploader 文件上传并预览(pdf文件)

    利用vant的组件Uploader实现文件上传,并且实现上传的文件在前端进行预览,不涉及服务端。实现的效果:pdf文档如果多页,可进行上下滑动。在移动端正常使用,pc端暂无验证。 参考了这个https://github.com/Hanpeng-Chen/hampton-demo-repo,里面有好几种方法,我使用的只是其中一种。

    2024年02月11日
    浏览(40)
  • vue3 el-upload 上传附件及预览 限制只能上传一个图片或者pdf格式的文件

    效果如图 直接看代码吧 template部分 css部分 js部分

    2024年02月11日
    浏览(87)
  • vant组件van-swipe-cell中的滑动删除功能(数据的删除功能)

    我们通过查看vant4官网发现上面并没有写如何删除,只有删除的按钮 我写的是这样的: wxml: 我这里数据是存在batchStore.informList中 重要的是: 要绑定一个id,是要删除的那条数据的唯一标识 js: 我这里数据是存在batchStore.informList中 先获取要删除那条数据的id

    2024年02月09日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包