【vue】---- ElementUI 实现上传Excel
1、功能描述:vue 项目使用 el-upload 实现上传 Excel。
2、功能效果:在el-upload基础上做了样式整改。


3、功能实现:
// el-upload 上传组件
<template>
<div>
<el-upload
ref="upload"
class="upload-demo"
action
accept=".xlsx"
:limit=limit
:auto-upload="false"
:before-upload="beforeUpload"
:on-change="handleChange"
:on-remove="handleRemove"
:on-exceed="handleExceed"
:on-success="handleSuccess"
:on-error="handleError"
:file-list="fileList"
:http-request="uploadFunc"
>
<el-button size="small" type="text">+点击上传</el-button>
</el-upload>
</div>
</template>
// el-upload 相应函数钩子 <script>
export default {
data() {
return {
limit: 1, // 上传excell时,同时允许上传的最大数
fileList: [], // excel文件列表
}
},
methods:{
// 上传文件之前的钩子, 参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传
beforeUpload(file) {
let extension = file.name.substring(file.name.lastIndexOf('.')+1)
let size = file.size / 1024 / 1024if(extension !== 'xlsx') {
this.$message.warning('只能上传后缀是.xlsx的文件')
}
if(size > 10) {
this.$message.warning('文件大小不得超过10M')
}
}, // 文件状态改变
handleChange(file, fileList) {
if (file) {
this.fileList = fileList.slice(-3)
}
}, // 删除文件
handleRemove(file, fileList) {
this.fileList = []
}, // 文件超出个数限制
handleExceed(files, fileList) {
this.$message.warning(`只能选择 ${this.limitNum} 个文件,当前共选择了 ${files.length + fileList.length} 个`)
}, // 文件上传成功
handleSuccess(res, file, fileList) {
this.$message.success('文件上传成功')
}, // 文件上传失败
handleError(err, file, fileList) {
this.$message.error('文件上传失败')
}, // 覆盖默认的上传行为,自定义上传的实现
uploadFile() {
if (this.fileList.length === 0){
this.$message.warning('请上传文件')
} else {
const data = new FormData()
const fileUps = file.file
data.append('file', fileUps)
this.$axios({
headers: {
'Content-Type': 'multipart/form-data'
},
url: '/user/batch',
data: data,
method: 'post'
}).then(res=>{
console.log(res)
},err =>{
console.log(err)
})
}
}
}
}
</script>
【vue】---- ElementUI 实现上传Excel的更多相关文章
- vue+elementUI 图片上传问题
图片上传问题,获取后台的图片,并点击可以更换图片,并把图片存储到数据库中: (1)在编辑页面上,action指的图片上传的地址,header指请求头: (2)因为element-ui有自己上传的接口, ...
- vue element-ui 文件上传
<el-upload class="upload-demo" action="" :before-remove="beforeRemove&qu ...
- vue element-ui 动态上传
上传填写完毕的幼儿及体测数据文件,上传成功后会自动导入该文件的数据 <el-upload :action="UploadUrl()" :on-success="Up ...
- vue ----element-ui 文件上传upload 组件 实现 及其后台
1.前台 action 不用改 :https://jsonplaceholder.typicode.com/posts/ getFile: 获取文件 data(){ return { file: {} ...
- vue之element-ui文件上传
vue之element-ui文件上传 文件上传需求 对于文件上传,实际项目中我们的需求一般分两种: 对于单个的文件上传,比如拖动上传个图片之类的,或者是文件. 和表单一起实现上传(这种情况一般都是 ...
- vue+axios+elementUI文件上传与下载
vue+axios+elementUI文件上传与下载 Simple_Learn 关注 0.5 2018.05.30 10:20 字数 209 阅读 15111评论 4喜欢 6 1.文件上传 这里主要 ...
- 一文解决Vue中实现 Excel下载到本地以及上传Excel
相信大家在项目中经常会遇到一些上传下载文件的相关功能,本文就Excel的相关功能进行简述: 咱直接看代码: <div class="import-main-content"& ...
- vue中el-upload上传多图片且携带参数,批量而不是一张一张的解决方案
现在前端基本不是vue技术栈就是react技术栈. vue技术栈最常用的就是element-ui的ui框架了. 在项目中,我们经常会碰到这种需求:批量上传文件 element-ui 确实也为我们提供了 ...
- element-ui Upload 上传组件源码分析整理笔记(十四)
简单写了部分注释,upload-dragger.vue(拖拽上传时显示此组件).upload-list.vue(已上传文件列表)源码暂未添加多少注释,等有空再补充,先记下来... index.vue ...
随机推荐
- Java实现 LeetCode 743 网络延迟时间(Dijkstra经典例题)
743. 网络延迟时间 有 N 个网络节点,标记为 1 到 N. 给定一个列表 times,表示信号经过有向边的传递时间. times[i] = (u, v, w),其中 u 是源节点,v 是目标节点 ...
- Java实现 LeetCode 405 数字转换为十六进制数
405. 数字转换为十六进制数 给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字母(a-f)都必须是小写. 十六进制字符串中不能 ...
- Java实现 LeetCode 307 区域和检索 - 数组可修改
307. 区域和检索 - 数组可修改 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. update(i, val) 函数可以通过将下标 ...
- Java实现 LeetCode 110 平衡二叉树
110. 平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9 ...
- Java实现 LeetCode 53 最大子序和
53. 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 ...
- java实现纵横火柴棋
[编程题] 这是一个纵横火柴棒游戏.如图[1.jpg],在一个3x4的方格中,游戏的双方轮流放置火柴棒.其规则是: 1. 不能放置在已经放置火柴棒的地方(即只能在空格中放置). 2. 火柴棒的方向只能 ...
- Java实现 蓝桥杯 历届试题 错误票据
问题描述 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号.全年所有票据的ID号是连续的,但ID的开始数码是随机选定的. 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成 ...
- Java实现第十届蓝桥杯外卖店优先级
试题 G: 外卖店优先级 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 [问题描述] "饱了么"外卖系统中维护着 N 家外卖店,编号 1 ∼ N.每家外卖店 ...
- Python:求时间差(天时分秒格式)
传入一个时间戳,以天时分秒格式打印出时间差 输入一个10位的时间戳,求出时间差 def time_diff(timestamp): onlineTime = datetime.datetime.fro ...
- JDK8在泛型类型推导上的变化
概述 JDK8升级,大部分问题可能在编译期就碰到了,但是有些时候比较蛋疼,编译期没有出现问题,但是在运行期就出了问题,比如今天要说的这个话题,所以大家再升级的时候还是要多测测再上线,当然JDK8给我们 ...