关于 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