我用 Arco Design 的 Upload 组件做头像上传,但用户能选到 PDF、Word 这些非图片文件。文档里说可以用 accept 属性,我试了 accept=".jpg,.png",结果还是能选其他格式,只是上传后被拦截,体验很不好。
有没有办法在文件选择弹窗里就只显示图片类型?或者在选择时直接禁用非图片文件?我看了官网示例没找到相关配置,求指点!
<a-upload
:accept="'.jpg,.jpeg,.png'"
:custom-request="handleUpload"
/>
accept属性来限制文件类型,不过有时候直接写.jpg,.png这种方式可能不够严谨,浏览器对 MIME 类型的支持也不太一样。你可以尝试使用 MIME 类型来指定图片文件,这样可以更可靠地过滤掉非图片文件。你可以在
accept属性中使用image/*来接受所有图片类型的文件,这样文件选择对话框里只会显示图片文件。然后在上传之前再做一次文件类型的校验,确保万无一失。改一下你的代码如下:
然后添加一个
beforeUpload方法来进行文件类型检查:这样不仅文件选择对话框里只会显示图片文件,而且在上传之前还会做一次校验,确保上传的文件确实是图片类型。