其他分享
首页 > 其他分享> > 关于 vant uploader 使用中出现的问题(vue3)

关于 vant uploader 使用中出现的问题(vue3)

作者:互联网

问题:限制 accept 为 'image/*' 时,部分机型还是可以上传视频或者文件的问题

解决方案:uploader 有一个 before-read 的参数,具体作用是( 文件读取前的回调函数,返回 false 可终止文件读取 官方文档API )使用这参数来判断文件类型最终限制文件上传 

具体代码(用的是vue3):

<template>
    <van-uploader v-model="data.fileList" accept="image/*" max-count="6" :before-read="limitTip" multiple />
</template>

<script setup>

let data = reactive({
    fileList: []
})

function limitTip(file: any) {
  const imgformat = /image\/(png|jpg|jpeg)$/;
  //因为开启了多选,所以当选择一张图片时, file 为一个对象,多张时,file 为数组,所以需要判断
  if (Array.isArray(file)) {
    for (let i = 0; i < file.length; i++) {
      if (!imgformat.test(file[i].type)) {
        myToast('目前只支持图片');
        return false;
      }
    }
  } else {
    if (!imgformat.test(file.type)) {
      myToast('目前只支持图片');
      return false;
    }
  }
  return true
}

</script>

 

标签:imgformat,false,vant,文件,image,file,vue3,return,uploader
来源: https://www.cnblogs.com/slackerRen/p/16483738.html