el-upload上传组件accept属性限制文件类型(案例详解)

简介: 案例分享el-upload上传组件accept属性!欢迎留言沟通交流!
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!

博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!

吾等采石之人,应怀大教堂之心,愿大家奔赴在各自的热爱里…

一、文章序言

上传组件基础学习可参考:Element-UI中el-upload上传组件(demo详解)

文件上传在大部分情况下都需要限制文件类型:当然对于前后端来说,前端可以实现筛选文件,后台也可以同步实现筛选文件,将不符合条件的文件筛选掉

对于服务器而言能在前端筛选掉的就不要留给后台去做没必要给服务器照成没必要的压力

---
之前给整理过 :before-upload="beforeUpload"这个属性,即上传前的回调,限制文件类型

<el-upload
  class="avatar-uploader"
  action="https://jsonplaceholder.typicode.com/posts/"
  :show-file-list="false"
  :on-success="handleAvatarSuccess"
  :before-upload="beforeUpload">
  <img v-if="imageUrl" :src="imageUrl" class="avatar">
  <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>

限制文件的大小,限制文件的类型都可以在这里操作,如果你上传的文件不符合条件,此处会给出对应的提示消息

      beforeUpload(file) {
        const isJPG = file.type === 'image/jpeg';
        const isLt2M = file.size / 1024 / 1024 < 2;

        if (!isJPG) {
          this.$message.error('上传头像图片只能是 JPG 格式!');
        }
        if (!isLt2M) {
          this.$message.error('上传头像图片大小不能超过 2MB!');
        }
        return isJPG && isLt2M;
      }
    }

本篇重点讲解element给我们提供了accept属性,即在选择文件的时候直接进行筛选


二、属性讲解

我们使用element官网文件上传测试,正常我们点击,此处是所有的文件

我们先创建一个文件上传测试文件夹放入部分文件
在这里插入图片描述
同步如果我们想在前端限制文件上传的类型可以在:before-upload="beforeAvatarUpload"中绑定对应的校验方法

但是这样其实还不够简洁和实用

在这里插入图片描述

element给我们提供了accept属性 接受上传的文件类型

此处我们加上accept属性来筛选文件,看看效果
在这里插入图片描述
使用accept属性直接在打开文件夹的时候就将文件进行了筛选

常见的文档类上传筛选如下,当然你根据你的业务来筛选

 accept=".pdf, .doc, .docx, .xls, .xlsx"

更多的筛选请参考

 accept=".jpg,.jpeg,.png,.gif,.bmp,.pdf,.JPG,.JPEG,.PBG,.GIF,.BMP,.PDF"

accept属性搭配 :before-upload="beforeUpload"属性使用

beforeUpload(file) {
  const fileSuffix = file.name.substring(file.name.lastIndexOf(".") + 1);
 
  const whiteList = ["pdf", "doc", "docx", "xls", "xlsx"];
 
  if (whiteList.indexOf(fileSuffix) === -1) {
    this.$message.error('上传文件只能是 pdf、doc、docx、xls、xlsx格式');
    return false;
  }
 
  const isLt2M = file.size / 1024 / 1024 < 2;
 
  if (!isLt2M) {
    this.$message.error('上传文件大小不能超过 2MB');
    return false;
  }
}

如上你需要限制文件类型的话还是建议多使用accept属性, :before-upload="beforeUpload"更多的只是帮助我们校验或者提示,当然你如果想限制文件大小或者限制图片的比例等可以在此属性里面新增操作!


三、拓展知识

基于vue-simple-uploader封装文件分片上传组件限制文件的类型

前段时间做的项目用到分片上传,涉及到视频,音频,文档的上传,也同步涉及到筛选,查阅了相关资料问题也得到解决
在这里插入图片描述

分片上传组件主要用于上传大文件,相对于传统的问题上传效率更高,速度更快

分片上传组件常常绑定一个属性,属性里面的accept如下写可以分别限制,图片,视频,音频的上传,在选择文件的时候直接筛选出对应的文件

picTypeFile: { accept: 'image/*' }
videoTypeFile: { accept: 'video/*' }
audioTypeFile: { accept: 'audio/*' }

具体的使用大家根据自己当前的组件对应的属性文档去尝试!
在这里插入图片描述
文件上传此版块,我也有很多的不足,后续我会陆续更新更多基础文章,欢迎学习交流分享,一起进步!


非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!

愿你们奔赴在自己的热爱里!

目录
相关文章
|
前端开发 开发者 容器
|
Java Linux
Linux - 安装 JDK(1.8版)
Linux - 安装 JDK(1.8版)
3272 0
Linux - 安装 JDK(1.8版)
|
7月前
|
JavaScript 前端开发 算法
前后端全栈技术栈深度剖析:从Vue到Node.js的完整学习路径
三年前端困于API调用?本文系统梳理进阶路径:深入Vue/React原理、掌握Node.js全栈开发、攻克工程化与性能优化,结合实战项目全面提升技术深度,助力突破瓶颈,直通大厂面试核心要求。
|
机器学习/深度学习 人工智能 安全
AI 绘画Stable Diffusion 研究(三)sd模型种类介绍及安装使用详解(1)
AI 绘画Stable Diffusion 研究(三)sd模型种类介绍及安装使用详解
3769 0
|
前端开发 JavaScript API
基于Vue3+Hooks实现4位随机数和60秒倒计时
本文介绍了如何在Vue3中使用Hooks API来实现生成4位随机数和执行60秒倒计时的功能,并提供了详细的代码示例和运行效果展示。
508 1
基于Vue3+Hooks实现4位随机数和60秒倒计时
|
机器学习/深度学习 数据采集 算法
隧道裂纹识别:基于计算机视觉与机器学习的应用分享
隧道裂纹的自动检测通过深度学习与计算机视觉技术实现,替代了传统人工检查,提高了检测精度与效率。本文介绍了一套完整的裂纹检测流程,包括图像采集、预处理、裂纹检测与标定、后处理及结果展示,提供了图像处理与深度学习模型的基本代码框架,旨在帮助读者掌握隧道裂纹检测的实际应用方法。
|
资源调度 前端开发
vue3.2最新语法如何使用socket.io实现即时通讯
vue3.2最新语法如何使用socket.io实现即时通讯
426 3
|
运维 Linux Apache
Docker详解(十二)——Docker容器权限问题
Docker详解(十二)——Docker容器权限问题
4245 5
文件上传限制以及element 和 element accept上传使用
前言 大家好,今天和大家分享一下上传文件如何实现上传限制,在制作项目时会遇见需要上传文件的功能,比如上传图片,上传音频,上传视频等等。但是点击上传文件打开文件夹时,文件夹内有好多格式的图片或音频,这个时候为了方便就可以进行文件格式的限制,只显示要上传的文件类型,下面我们来看看如何实现这个功能。
|
JSON JavaScript 前端开发
dayjs 中文文档
dayjs 中文文档
1764 0