el-upload php,el-upload组件说明汇总,实现上传、点击下载、删除功能等

本文详细介绍了如何使用Element UI组件库实现前端文件上传功能,包括限制上传文件数量、格式和大小,以及文件预览、下载和移除。通过`before-upload`、`on-exceed`等钩子函数进行校验和控制,并展示了处理上传成功后的回调函数。此外,还演示了如何点击已上传文件进行下载的操作。
摘要由CSDN通过智能技术生成

class="upload-demo"

action="/admin/sys-file/upload" //文件上传路径

:headers="headers" //请求头配置信息

:file-list="fileList" //上传的文件显示列表, 格式如: [{name: 'food.jpg', url: 'https://xxx.cdn.com/xxx.jpg'}]

:limit="5" //设置最大允许上传个数

:on-exceed="handleExceed" //文件超出个数限制时的钩子

accept=".doc,.docx,.xls,.xlsx,.ppt,.pptx" //接受上传的文件类型

:before-upload="beforeUpload" //上传文件之前的钩子,判断文件大小和格式是否符合

:on-remove="handleRemove" //文件列表移除文件时的钩子

:on-preview="handlePreview" //点击文件列表中已上传的文件时的钩子

:on-success="handleSuccess">

上传文件

最多可上传5个,文件大小不超过50MB

import store from '@/store'

data() {

return {

fileList:[],

headers: {

Authorization: 'Bearer ' + store.getters.access_token,

'TENANT-ID': '1564020210'

}

},

methods: {

//点击文件列表中已上传文件进行下载

handlePreview(file) {

var a = document.createElement('a');

var event = new MouseEvent('click');

a.download = file.name;

a.href = file.url;

a.dispatchEvent(event);

console.log(file)

},

//上传文件大小和格式校验

beforeUpload(file){

var fileType =file.name.substring(file.name.lastIndexOf('.')+1)

const isFile =

fileType === "doc" ||

fileType === "docx" ||

fileType === "xls" ||

fileType === "xlsx" ||

fileType === "ppt" ||

fileType === "pptx"

if (!isFile) {

this.$message.error("请选择正确的文件格式")

return false

}

const isLt50M = file.size / 1024 / 1024 < 50

if (!isLt50M) {

this.$message.error("上传图片大小不能超过 50MB!")

}

return isLt50M && isFile

},

//文件超出限制个数提示

handleExceed(files, fileList) {

this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);

},

//上传成功

handleSuccess(res, file, fileList){

let fileSize=res.data.fileSize/1024/1024

this.fileList.push({

name: file.name,

fileSize:fileSize,

url: res.data.bucketName + '/' + res.data.fileName

})

console.info(fileList,"fileList")

},

//文件移除操作

handleRemove(file, fileList){

console.info(file,"file")

this.fileList=fileList

},

//点击文件列表中已上传文件进行下载

handlePreview(file) {

var a = document.createElement('a');

var event = new MouseEvent('click');

a.download = file.name;

a.href = file.url;

a.dispatchEvent(event);

console.log(file)

},

}

一、限制上传文件个数

可通过设置limit和on-exceed来限制上传文件的个数和定义超出限制时的行为。

66b03ba86994b6c700e57b1dbc0a9f77.png

二、 限制上传的图片格式和大小

使用 before-upload 限制用户上传的图片格式和大小。

e09a950cf8f35890443d0c128c922aad.png

三、点击已上传文件进行下载

实现这个功能主要用到element的on-preview钩子函数

6adab54f174b30a3369a4b4793bef5dd.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值