Element UI 上传文件 el-upload —— 手动上传文件,限制上传文件数量,文件类型校验等

简介: Element UI 上传文件 el-upload —— 手动上传文件,限制上传文件数量,文件类型校验等

手动上传

:auto-upload="false"
this.$refs.upload.submit();

选择文件时,限定文件类型

accept=".xlsx,.xls"

选择文件时,限制文件总数

:limit="1"

超出文件总数时,触发

:on-exceed='limitCheck'
// 选择的文件超出限制的文件总数量时触发
limitCheck() {
    this.$message.warning('每次只能上传一个文件')
},

文件上传前的文件类型和文件大小校验

:before-upload="beforeUpload"
// 文件上传前的校验 —— 常见的校验有:校验文件类型,文件大小
beforeUpload(file) {
    // 允许上传的文件格式列表
    let acceptList = ["xlsx", "xls"]
    // 根据文件名获取文件的后缀名
    let fileType = file.name.split('.').pop().toLowerCase()
    // 判断文件格式是否符合要求
    if (acceptList.indexOf(fileType) === -1) {
        this.$message.error('只能上传 xlsx/xls 格式的文件 !');
        return false
    }
    // 判断文件大小是否符合要求
    if (file.size / 1024 / 1024 > 1) {
        this.$message.error('上传文件大小不能超过 1M !');
        return false
    }
}

完整范例代码

<template>
    <div style="padding: 30px">
        <el-upload
                ref="upload"
                accept=".xlsx,.xls"
                :limit="1"
                :on-exceed='limitCheck'
                :file-list="fileList"
                :on-remove="removeFile"
                :on-change="fileChange"
                :auto-upload="false"
                :before-upload="beforeUpload"
                action="https://jsonplaceholder.typicode.com/posts/"
        >
            <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
            <el-button :disabled="fileList.length<1" style="margin-left: 10px;" size="small" type="success"
                       @click="submitUpload">上传到服务器
            </el-button>
            <div slot="tip" class="el-upload__tip">只能上传 xlsx/xls 文件,且不超过1M</div>
        </el-upload>
    </div>
</template>
<script>
    export default {
        data() {
            return {
                fileList: []
            }
        },
        methods: {
            // 选择文件、移除文件、上传文件成功/失败后,都会触发
            fileChange(file, fileList) {
                this.fileList = fileList
            },
            // 移除文件时触发
            removeFile(file, fileList) {
                this.fileList = fileList
            },
            // 选择的文件超出限制的文件总数量时触发
            limitCheck() {
                this.$message.warning('每次只能上传一个文件')
            },
            // 点击上传按钮
            submitUpload() {
                // 将文件上传到服务器,先触发beforeUpload事件,对上传的文件进行校验,校验通过后才会上传
                this.$refs.upload.submit();
            },
            // 文件上传前的校验 —— 常见的校验有:校验文件类型,文件大小
            beforeUpload(file) {
                // 允许上传的文件格式列表
                let acceptList = ["xlsx", "xls"]
                // 根据文件名获取文件的后缀名
                let fileType = file.name.split('.').pop().toLowerCase()
                // 判断文件格式是否符合要求
                if (acceptList.indexOf(fileType) === -1) {
                    this.$message.error('只能上传 xlsx/xls 格式的文件 !');
                    return false
                }
                // 判断文件大小是否符合要求
                if (file.size / 1024 / 1024 > 1) {
                    this.$message.error('上传文件大小不能超过 1M !');
                    return false
                }
            }
        },
    }
</script>
<style scoped>
</style>


目录
相关文章
|
9天前
|
UED
Element UI 一键校验多表单(v-for循环表单,异步校验规则,v-for 中的 ref 属性,避坑 forEach 不支持异步 await )
Element UI 一键校验多表单(v-for循环表单,异步校验规则,v-for 中的 ref 属性,避坑 forEach 不支持异步 await )
12 0
|
11天前
|
数据安全/隐私保护
Element UI 密码输入框--可切换显示隐藏,自定义图标
Element UI 密码输入框--可切换显示隐藏,自定义图标
9 0
|
11天前
Element UI 表格【列宽自适应】
Element UI 表格【列宽自适应】
8 0
|
11天前
|
前端开发
ElementPlus卡片如何能够一行呈四,黑马UI前端布局视频资料,element样式具体的细节无法修改,F12找到那个位置,可能在其他组件写了错误,找到那个位置,围绕着位置解决问题最快了,卡片下边
ElementPlus卡片如何能够一行呈四,黑马UI前端布局视频资料,element样式具体的细节无法修改,F12找到那个位置,可能在其他组件写了错误,找到那个位置,围绕着位置解决问题最快了,卡片下边
|
11天前
Element UI 【表格合计】el-table 实战范例 -- 添加单位,自定义计算逻辑
Element UI 【表格合计】el-table 实战范例 -- 添加单位,自定义计算逻辑
10 0
|
2月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
2月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
|
2月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
|
2月前
|
JSON 前端开发 测试技术
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版