el-upload上传附件,如何限制附件类型和附件大小

el-upload上传附件,如何限制附件类型和附件大小

  • 一、直接上代码

一、直接上代码

<template><!-- 普通附件上传一个(加额外参数index) --><!-- 话题上传附件 --><!-- dataParams: {fileType: "",projectId: "",moduleId: "",topicId: "",}, --><!-- :disabled="uploadDisabled" --><el-uploadclass="upload-demo":action="actionUrl":on-remove="attachRemove":before-remove="attachBeforeRemove":multiple="false":on-progress="attachProgress":on-error="attachError":before-upload="handleBeforeUpload":on-success="attachUploadSuccess":on-preview="attachPreview":headers="headers":file-list="fileDataList":data="dataParams":disabled="uploadDisabled"><el-buttonsize="small"type="primary"plain:disabled="uploadDisabled"icon="el-icon-upload">{{ uploadDisabled ? '上传中...' : '+ 上传附件' }}<!-- {{ '上传附件' }} --></el-button></el-upload>
</template><script>
import { mapState } from 'vuex';
export default {name: 'uploadComponentIndex',props: {attachFileList: {type: Array,default() {return [];},},// 索引 ----根据index删除指定的附件index: {type: Number,default: 0,},// 话题idtalkId: {type: String,default: '',},fileType: {type: String,default: '',},// 是新增还是编辑话题type: {type: String,default: '',},},data() {return {uploadDisabled: false,fileDataList: [],dataParams: {},};},computed: {actionUrl() {return process.env.VUE_APP_WEB_API + '/url';},headers() {return { token: this.$store.state.token };},...mapState(['projectModule']),},watch: {attachFileList: {//监听的对象deep: true, //深度监听设置为 trueimmediate: true,handler: function (newV, oldV) {this.fileDataList = newV;},},// 话题编辑和新增的时候用到type: {deep: true, //深度监听设置为 trueimmediate: true,handler: function (newV, oldV) {console.log(newV, 'warch--上传监听是add还是edit');if (newV == 'editKnow') {// 知识库编辑上传附件时候this.dataParams = {fileType: this.fileType,// projectId: this.projectModule.projectId,// moduleId: this.projectModule.moduleId,topicId: this.talkId,};} else {this.dataParams = {fileType: this.fileType,projectId: this.projectModule.projectId,moduleId: this.projectModule.moduleId,topicId: this.talkId,};}},},},methods: {attachProgress() {this.uploadDisabled = true;},attachError(err, file, fileList) {//上传失败code!=200的时候也不会执行这个函数,我也不知道为什么this.uploadDisabled = false;},attachRemove(file) {if (file && file.status === 'success') {//移除方法this.$emit('DialogDeleteId', {...file,fileType: this.fileType,index: this.index,});}},attachBeforeRemove(file, fileList) {if (file && file.status === 'success') {//移除方法return this.$confirm(`确定移除 ${file.name}`);}},attachUploadSuccess(response, file, fileList) {this.uploadDisabled = false;//res.code!=200的时候也会执行上次成功函数this.fileDataList.push({id: response.data[0].id,name: response.data[0].fileName,url: response.data[0].url,});this.$emit('DialogOk', {fileData: this.fileDataList,fileType: this.fileType,index: this.index,});},handleBeforeUpload(file) {//录音:WAV,MP3,AAC,FLAC,OGG  ====// 视频:MP4,AVI,MOV,WMV,WEBM,FLV,MKV ====mkv不支持// 检测文件类型console.log(file.type, this.fileType, '上传类型');let isFileType;if (this.fileType == 3) {isFileType = ['audio/mpeg','audio/wav','audio/aac','audio/flac','audio/ogg',].includes(file.type);if (!isFileType)this.$message({message: '上传格式仅支持mp3,wav,aac,flac,ogg!',type: 'error',showClose: true,offset: 80,});return isFileType;} else if (this.fileType == 4) {isFileType = ['image/jpeg', 'image/png', 'image/jpg', 'image/svg+xml'].includes(file.type);if (!isFileType)this.$message({message: '上传格式仅支持jpeg,png,jpg,svg!',type: 'error',showClose: true,offset: 80,});return isFileType;} else if (this.fileType == 5) {isFileType = ['video/mp4', 'video/quicktime', 'video/webm'].includes(file.type);if (!isFileType)this.$message({message: '上传格式仅支持mp4,mov,webm!',type: 'error',showClose: true,offset: 80,});return isFileType;} else {isFileType = ['application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/msword','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/vnd.ms-excel','text/csv','application/vnd.openxmlformats-officedocument.presentationml.presentation','application/vnd.ms-powerpoint','application/pdf',].includes(file.type);if (!isFileType)this.$message({message: '上传格式仅支持.docx,.doc,.xlsx,.xls,.csv,.ppt,.pptx,.pdf!',type: 'error',showClose: true,offset: 80,});return isFileType;} },attachPreview(file) {this.$emit('DialogPreview', {index: this.index,fileType: this.fileType,...file,});return false;// let newFile = file.url.split('/')// let header = newFile[0] + '//' + newFile[2] + '/'// let end = file.url.slice(header.length)// window.open(header + encodeURIComponent(end), '_blank')},},
};
</script><style lang="scss"></style>

没有了~~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

镜舟科技亮相2024中国移动算力网络大会、Qcon、DTC等多项活动

在刚刚过去的 4 月份&#xff0c;镜舟科技受邀参与一系列技术交流活动&#xff0c;与移动云、金科创新社、infoQ、墨天轮、开科唯识等媒体及合作伙伴展开积极交流&#xff0c;并分享其在数据技术、金融等垂直行业领域的创新实践&#xff0c;从产业侧、业务侧、技术侧洞察需求、…

idea-自我快捷键-2

1. 书签 创建书签&#xff1a; 创建书签&#xff1a;F11创建特色标记书签&#xff1a;Ctrl F11快速添加助记符书签&#xff1a;ctrl shift 数字键 查看书签&#xff1a; shift F11快速定位到助记符书签&#xff1a;Ctrl 数字键 删除书签&#xff1a; delete 2. 自动…

【最新点云数据增强综述】深度学习点云数据增强技术的进展

深度学习(DL)已成为点云分析任务(如检测、分割和分类)的主流和有效方法之一。为了减少深度学习模型训练过程中的过拟合,提高模型性能,尤其是在训练数据的数量和/或多样性有限的情况下,增强往往至关重要。虽然各种点云数据增强方法已被广泛应用于不同的点云处理任务中,但…

docker搭建mysql集群实现主从复制

前言 随着业务的增长&#xff0c;一台数据服务器已经满足不了需求了&#xff0c;负载过重。这个时候就需要减压了&#xff0c;实现负载均衡和读写分离&#xff0c;一主一丛或一主多从。 主服务器只负责写&#xff0c;而从服务器只负责读&#xff0c;从而提高了效率减轻压力。 …

MySQL导入导出详细教程

导出 语法 mysqldump [OPTIONS] database [tables] mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] mysqldump [OPTIONS] --all-databases [OPTIONS]导出所有数据库 mysqldump -uroot -proot --all-databases >/tmp/all.sql导出db1、db2两个数据库的所有数…

融资融券概念和操纵流程,案例解析

融资融券是一种金融工具&#xff0c;它允许投资者在证券市场上进行杠杆交易。简单来说&#xff0c;融资就是借钱买股票&#xff0c;融券就是借股票卖出。这种交易方式可以帮助投资者在短期内获得更高的收益&#xff0c;但同时也伴随着较高的风险。 案例背景&#xff1a; 假设…

基于VOLOPV2的自动驾驶环境感知系统

基于VOLOPV2的自动驾驶环境感知系统是一个复杂的系统&#xff0c;它主要负责实时检测并识别周围环境中的各种物体和信息&#xff0c;为自动驾驶车辆提供必要的感知数据。以下是对该系统的一个简要介绍&#xff1a; 环境感知是自动驾驶系统中的一个关键部分&#xff0c;它依赖于…

app知识付费系统,教育机构万圣节招生活动该怎么做?

马上就到11月1日万圣节啦&#xff0c;又是一个活动招生的好时机!对于教培机构来说&#xff0c;节日活动是非常有效的营销手段。一场突出的创意活动&#xff0c;可以有效提高机构的美誉度&#xff0c;可以有效增加客户的粘性&#xff0c;带来转介绍!招生方案千千万&#xff0c;适…

静态分析-RIPS-源码解析记录-03

既然有源码可以debug&#xff0c;那么直接跑测试用例&#xff0c;来跟踪处理逻辑感觉比直接看代码理逻辑更快一些&#xff0c;尤其是涉及到了扫描阶段&#xff0c;不然不容易弄清某刻某个变量的取值。 对于所有漏洞而言&#xff0c;都是由sink点到source点检测是否有过滤函数&…

数据库管理-第187期 23ai:怎么用SQL创建图(20240510)

数据库管理187期 2024-05-10 数据库管理-第187期 23ai:怎么用SQL创建图&#xff08;20240510&#xff09;1 安装PGX1.1 数据库配置对应用户1.2 使用RPM包安装Graph Server1.3 安装Oracle Graph Client1.4 访问PGX页面 2 SQL Property Graph2.1 创建SQL属性图2.2 关于点和边图元…

副业兼职没那么难,视频号带货,1天稳定500,适合新手操作

向大家推荐一个项目&#xff1a;视频号书单号带货玩法。我已经实践了一段时间&#xff0c;并成功售出了1200多单&#xff0c;赚取了2万多元。这个项目表现相当出色&#xff0c;强烈推荐给大家&#xff01; 周周近财&#xff1a;让网络小白少花冤枉钱&#xff0c;赚取第一桶金 …

【LeetCode】面试经典150题:189.轮转数组

给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4]…

[机器学习-03] Scikit-Learn机器学习工具包学习指南:主要功能与用法解析

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

芋道系统springcloud模块启动报错,枚举类不能为空

问题描述&#xff1a; Error starting ApplicationContext. To display the conditions report re-run your application with debug enabled. 2024-05-10 15:50:15.756 | ERROR 9120 | main [TID: N/A] o.s.b.d.LoggingFailureAnalysisReporter | ************************…

Vue创建todolist

电子书 第三章&#xff1a; https://www.dedao.cn/ebook/reader?idV5R16yPmaYOMqGRAv82jkX4KDe175w7xRQ0rbx6pNgznl9VZPLJQyEBodb89mqoO 没有使用VUE CLI创建项目。 创建步骤&#xff1a; 1&#xff0c; 用Vite 创建项目 2&#xff0c; npm run dev 运行程序 参照之前的文…

数据结构与算法学习笔记八-二叉树的顺序存储表示法和实现(C语言)

目录 前言 1.数组和结构体相关的一些知识 1.数组 2.结构体数组 3.递归遍历数组 2.二叉树的顺序存储表示法和实现 1.定义 2.初始化 3.先序遍历二叉树 4.中序遍历二叉树 5.后序遍历二叉树 6.完整代码 前言 二叉树的非递归的表示和实现。 1.数组和结构体相关的一些知…

Java实现字符串补齐至固定长度

简介 介绍本篇博客将会分享的内容&#xff1a;在Java中&#xff0c;如何将字符串补齐至固定长度&#xff0c;以及具体的实现方法。 方法一&#xff1a;使用 String.format() 方法 实现步骤 使用 %10s 格式指定字符串的最小宽度为10。使用 String.format() 方法将字符串格式…

搭建Harbor仓库

文章目录 Harbor仓库搭建Harbor仓库安装 docker 服务修改配置文件 Harbor仓库 搭建Harbor仓库 下载 Harbor 仓库 安装 docker 服务 # step 1: 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 yum-config-m…

哪里可以获得正规的行政区底图?

探索国家自然资源部标准地图服务系统&#xff1a;便捷与个性化的地理信息服务 在当今信息化、数字化的时代&#xff0c;地图作为地理信息的重要载体&#xff0c;其应用已经渗透到我们生活的方方面面。无论是出行导航、城市规划&#xff0c;还是学术研究、教育普及&#xff0c;…

学习笔记:IEEE 1003.13-2003【POSIX PSE52接口列表】

一、POSIX PSE52接口列表 根据IEEE 1003.13-2003&#xff0c;整理了POSIX PSE52接口API&#xff08;一共342个&#xff09;&#xff0c;每个API支持链接查看。 IEEE POSIX接口online搜索链接&#xff1a; The Open Group Base Specifications Issue 7, 2018 edition 详细内…