vue el-upload上传文件的示例代码


Posted in Vue.js onDecember 21, 2020

话不多说 直接上代码

<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');
  },

以上就是vue el-upload上传文件的示例代码的详细内容,更多关于vue el-upload上传文件的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
vue实现广告栏上下滚动效果
Nov 26 Vue.js
Vue用mixin合并重复代码的实现
Nov 27 Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
Vue仿百度搜索功能
Dec 28 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
vue实现验证用户名是否可用
Jan 20 Vue.js
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
vue自定义右键菜单之全局实现
Apr 09 Vue.js
vue选项卡切换的实现案例
Apr 11 Vue.js
vue中data里面的数据相互使用方式
Jun 05 Vue.js
vue 在单页面应用里使用二级套嵌路由
Dec 19 #Vue.js
vue中如何添加百度统计代码
Dec 19 #Vue.js
vue 导航守卫和axios拦截器有哪些区别
Dec 19 #Vue.js
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
Dec 19 #Vue.js
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 #Vue.js
Vue——前端生成二维码的示例
Dec 19 #Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 #Vue.js
You might like
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
Python线程的两种编程方式
2015/04/14 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
幼儿园园长六一致辞
2015/07/31 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL