vue el-upload上传文件的示例代码
作者:我自是年少 发布时间:2024-05-11 09:13:47
标签:vue,上传文件,el-upload
话不多说 直接上代码
<el-upload
:action="actionUrl"
class="avatar-uploader"
:multiple="false"
name="files"
ref="upload"
:file-list="fileList"
:on-preview="handlePreview"
:on-success="handleSuccess"
:before-upload ="beforeUpload"
:http-request="httpRequest"
:on-exceed="handleExceed"
:on-change="handleChanged"
accept=".csv,.xls,.xlsx"
:auto-upload="false"
>
<el-button slot="trigger" size="small">选取文件</el-button>
<el-button style="margin-left: 10px;" size="small" type="primary" @click="submitUpload">上传到服务器</el-button>
<div slot="tip" class="el-upload__tip">只能上传csv/xslx/xsl文件,且不超过1M</div>
</el-upload>
actionUrl: `${env.imgCaptchaUrl}**/upload`,
fileList: [],
handleChanged(file,fileList){
this.fileList = fileList
},
handleExceed (file, fileList) {
console.log(file);
},
handleSuccess (res, file) {
console.log(file);
console.log(res);
},
handlePreview(file){
console.log(file);
},
beforeUpload (file) {
if (file.size / 1024 / 1024 > 1) {
Vue.$vux.toast.text('上传文件不超过1M')
return false
}
var ext = file.name.substring(file.name.lastIndexOf('.') + 1)
const extension =
ext === 'csv' ||
ext === 'CSV' ||
ext === 'xlsx' ||
ext === 'xls'
if (!extension) {
Vue.$vux.toast.text('上传文件格式只能为csv、xlsx/xls')
return false
}
},
httpRequest (opt) {
const _this = this
const file = opt.file
Vue.$vux.toast.text('文件上传中...')
var reader = new FileReader()
reader.readAsDataURL(file)
reader.onload = function (e) {
let imgType = ''
var ext = file.name.substring(file.name.lastIndexOf('.') + 1)
if (ext === 'csv' ) {
imgType = 'csv'
}
if (ext === 'xlsx' || ext === 'xls') {
imgType = 'xlsx'
}
uploadCsv({
files: this.result.replace(`data:image/${imgType};base64,`, '')
})
.then(res => {
if (res.errno === 0) {
Vue.$vux.toast.text('上传成功')
_this.account.license_url = res.data.url
}
})
.catch(err => {})
}
},
submitUpload(){
if(this.fileList.length==0){
this.successDialog = "请先选择文件";
this.sussAlog = true;
return
}
this.$refs.upload.submit();
},
onDownload(){
let start = ""
let end = ""
if(this.form.time){
start = parseTime(this.form.time[0]);
end = parseTime(this.form.time[1]);
}
delete(this.form.time)
Object.assign(this.form, {
first_time: start,
end_time: end ,
});
let {
first_time,
end_time,
} = this.form;
window.open(this.downUrl+"lm/downloadModel?"+
"&first_time="+first_time+
"&end_time="+end_time
, '_blank');
},
来源:https://www.cnblogs.com/yangsg/p/13182228.html


猜你喜欢
- 在用Pygame写游戏的时候,有人可能会遇到两个Rect对象碰撞但是对象之间还有空间间隔的问题,这里,将教大家用一种方法精准地检测图像碰撞。
- 前言有时会遇到没有遵守第一范式设计模式的业务表。即一列中存储了多个属性值。如下表pkvalue1ET,AT2AT,BT3AT,DT4DT,C
- 常见的几种分页方式:1.扶梯方式扶梯方式在导航上通常只提供上一页/下一页这两种模式,部分产品甚至不提供上一页功能,只提供一种“更多/more
- 语法:列表 list.pop(obj=list[-1])pop()用于删除并返回列表中的一个元素(默认为最后一个元素)obj:要删除并返回的
- 问题jupyter notebook读入csv数据时出现错误“SyntaxError: (unicode error) ‘unicodees
- 可以,具体说明和代码见下: <%@ Language=VBScript %><%Option
- 1.筛选出目标值所在行 单列筛选# df[列名].isin([目标值])对当前列中存在目标值的行会返回True,不存在的返回Fal
- TensorFlow 定义输入节点名称input_name: with tf.name_scope('input'): &
- mysql-5.6.14-win32为免安装解压缩版,安装版(http://dev.mysql.com/downloads/installe
- 前言大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可。说到切图,Python 就可以实
- 年关将近,抽奖想必是大家在公司年会上最期待的活动了。如果老板让你做一个年会抽奖的程序,你会怎么实现呢?今天给大家介绍一下如何通过 SQL 语
- 这是个郁闷的问题。主级获得ID列表 select ID from FS_SD_Address where PID=0
- 什么是协程在 Python 中,协程(Coroutine)是一种轻量级的并发编程方式,可以通过协作式多任务来实现高效的并发执行。协程是一种特
- 一、常量常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为
- 如何验证IP地址?sub chkIP(boardid) dim rsIP dim ipAr
- 摘要:主要介绍一些python的文件读取功能,文件内容修改,文件名后缀更改等操作。批处理文件功能import ospath1 = '
- 背景随着Web技术的发展和移动互联网的发展,Hybrid技术已经成为一种前端开发的主流技术方案。那什么是Hybrid App呢?Hybrid
- 前言本文主要分享一个python代码,可以将多个视频中的音频转化为相同采样率的视频。对视频格式的校验没有做,也不是很关键。环境依赖ffmpe
- Python编程时,经常需要跳过第一行读取文件内容。简单的做法是为每行设置一个line_num,然后判断line_num是否为1,如果不等于
- 对于金额的显示,大多情况下需要保留两位小数,比如下面的(表格采用 element-ui):在vue.js中,对文本的处理通常是通过设置一系列