🎊 vue +element的上传文件限制文件大小和限制文件类型

vue +element的上传文件限制文件大小和限制文件类型

vue +element的上传文件限制文件大小和限制文件类型

element的文件上传的文档中介绍:

参数说明类型accept接受上传的文件类型(thumbnail-mode 模式下此参数无效)string下面附上代码

class="upload-demo"

action="https://jsonplaceholder.typicode.com/posts/"

:on-preview="handlePreview"

:on-remove="handleRemove"

:on-change="onchange"

:before-upload="beforeAvatarUpload"

:before-remove="beforeRemove"

accept=".rar,.zip,.doc,.docx,.pdf"

multiple

:limit="3"

:auto-upload="false"

:on-exceed="handleExceed"

:file-list="fileList"

>

选择附件

支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB

实际效果

说明

这里只设置一个accept 是不可行的,用户还可可以选择所有文件进行上传。

这里可以用on-change进行添加文件的时候进行附加判断,

fileList是上传文件的集合,判断上传文件的file对象的name和size属性判断新添加文件的类型和大小。

代码

//html部分

class="upload-demo"

action="https://jsonplaceholder.typicode.com/posts/"

:on-preview="handlePreview"

:on-remove="handleRemove"

:on-change="onchange"

:before-upload="beforeAvatarUpload"

:before-remove="beforeRemove"

accept=".rar,.zip,.doc,.docx,.pdf"

multiple

:limit="3"

:auto-upload="false"

:on-exceed="handleExceed"

:file-list="fileList"

>

选择附件

支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB

//js部分

onchange(file,fileList) {

let fileName = file.name;

let uid = file.uid

let pos = fileName.lastIndexOf(".");

let lastName = fileName.substring(pos, fileName.length);

if (

lastName.toLowerCase() !== ".zip" &&

lastName.toLowerCase() !== ".rar"&&

lastName.toLowerCase() !== ".docx"&&

lastName.toLowerCase() !== ".pdf"

) {

this.$message.error("文件必须为.rar .zip .doc .docx .pdf 类型");

// this.resetCompressData()

for(var i = 0;i

if(fileList[i].uid == uid) {

fileList.splice(i,1)

}

}

return;

}

// 限制上传文件的大小

const isLt =

file.size / 1024 / 5 >= 1 && file.size / 1024 / 1024 / 20 <= 1;

if (!isLt) {

this.$message.error("上传文件大小不得小于5KB,不得大于20MB!");

for(var i = 0;i

if(fileList[i].uid == uid) {

fileList.splice(i,1)

}

}

}

return isLt;

},

此时,上传限制类型和限制大小的上传功能完成

结果展示

应大哥的诉求,我的代码确实不完整,下面就是整个上传文件的完整代码

{{type=='Note'?'我的笔记':'我的资料'}}

刷新

返回

文件来源

名称排序

我的关注

文件筛选

placeholder="请输入内容"

prefix-icon="el-icon-search"

@keyup.enter.native="onSubmit"

v-model="value"

>

新建文件夹

>

新建文件

>

全部文件

/

全部文件

{{type=='Note'?'笔记列表':'数据列表'}}

分享

>

下载

>

关注

>

下载

>

重命名

>

复制

>

移动

>

删除

>

style="

border-color: rgba(233, 233, 233, 1);

border-right: none;

border-bottom: none;

"

border="1"

cellpadding="0"

cellspacing="0"

width="100%"

>

文件

文件大小

笔记内容

文件类型

笔记标签

文件来源

更新时间

{{item.folderName}}==

{{item.filetitle}}

2M

{{item.bookmarkName}}

.DOC

{{item.kgLabels | renders}}

个人创建

{{item.createTime}}

@size-change="handleSizeChange"

@current-change="handleCurrentChange"

:current-page="currentPage"

:page-sizes="[10, 20, 30, 50]"

:page-size="pagesize"

layout="total, sizes, prev, pager, next, jumper"

:total="fullpage.total"

>

label="文件标题"

:label-width="formLabelWidth"

prop="name"

>

v-model="form.name"

placeholder="请输入文件标题"

autocomplete="off"

>

type="textarea"

placeholder="请输入文件描述"

v-model="form.desc"

>

class="upload-demo"

action="https://jsonplaceholder.typicode.com/posts/"

:on-preview="handlePreview"

:on-remove="handleRemove"

:on-change="onchange"

:before-upload="beforeAvatarUpload"

:before-remove="beforeRemove"

accept=".rar,.zip,.doc,.docx,.pdf"

multiple

:limit="3"

:auto-upload="false"

:on-exceed="handleExceed"

:file-list="fileList"

>

选择附件

支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB

v-model="value2"

multiple

collapse-tags

placeholder="请选择"

>

v-for="item in options"

:key="item.value"

:label="item.label"

:value="item.value"

>

(短信可用数:1000条)

v-model="folderName"

placeholder="输入文件夹名称"

autocomplete="off"

>

import {GetCollList,getAllNote,GetMyNote,getNoteSearch} from '../../api/apis'

🎁 相关推荐

倩女幽魂藏宝阁
🎯 365bet手机

倩女幽魂藏宝阁

📅 08-04 👀 4620
for循环嵌套,C语言for循环嵌套详解
🎯 bet3365info

for循环嵌套,C语言for循环嵌套详解

📅 09-13 👀 9746
仓鼠磨牙用什么最好?教你选择合适的磨牙工具和材料