基于vue+Element UI的文件上传(可拖拽上传)

这篇具有很好参考价值的文章主要介绍了基于vue+Element UI的文件上传(可拖拽上传)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


实现效果

基于vue+Element UI的文件上传(可拖拽上传)
基于vue+Element UI的文件上传(可拖拽上传)


一、先创建一个Dialog对话框进行存放

<template>
    <!-- 导入遮罩层 -->
    <el-dialog
      :title="$t('to_lead')"
      :visible.sync="BatchAdd"
      custom-class="BatcchAdd"
      width="30%"
      :before-close="CloseBatcchAdd">
			<span>这是一段信息</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="BatchAdd = false">{{$t('Cancel')}}</el-button>
        <el-button type="primary" @click="Batch_Add">{{$t('determine')}}</el-button>
      </span>
    </el-dialog>
</template>
<script>
	data(){
	    return{
	    	BatchAdd:false, //控制批量添加遮罩
	    }
	  },
	methods:{
		Batch_Add(){  //导入遮罩打开
			this.BatchAdd = true
		},
		CloseBatcchAdd(){ //导入遮罩关闭
      		this.BatchAdd = false
    	},
	}
</script>

<style>
.BatcchAdd{
  text-align: center;
}
</style>

二、加入Upload 上传组件

1.HTML

    <!-- 导入遮罩层 -->
    <el-dialog
      :title="$t('to_lead')"
      :visible.sync="BatchAdd"
      custom-class="BatcchAdd"
      width="30%"
      :before-close="CloseBatcchAdd">
        <el-upload
          class="upload-demo"
          drag
          action="#"
          ref="upload"
          :on-remove="removefile"
          :auto-upload="false"
          :on-change="file">
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">{{ $t('Drag_the_file_here') }}{{ $t('or') }}<em>{{ $t('Click_Upload') }}</em></div>
          <div class="el-upload__tip" slot="tip">{{ $t('You_need_to_use_a_consignment_template') }}</div>
        </el-upload>
      <span slot="footer" class="dialog-footer">
        <el-button @click="BatchAdd = false">{{$t('Cancel')}}</el-button>
        <el-button type="primary" @click="Batch_Add">{{$t('determine')}}</el-button>
      </span>
    </el-dialog>

drag: 支持拖拽上传
action:必选参数,上传的地址
ref:这里主要是用于文件上传完成后清除文件的
on-remove:文件列表移除文件时的钩子
auto-upload:是否在选取文件后立即进行上传
on-change:文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用
注:这里使用的{{$t(‘to_lead’)}}是i18n语言切换的语法,如果没有配置这里会报错,不需要可以直接换成自己想要的字段

2.JavaScript

<script>
	data(){
	    return{
			BatchAdd:false, //控制批量添加遮罩
			BatchAddfile:[],  //批量添加文件
	    }
	  },
	methods:{
    Batch_Add(){  //导入
      if (!this.BatchAdd) {
        this.BatchAdd = true
        return
      }
      if (this.BatchAddfile == '') {
        this.$message.warning('文件为空')
        return
      }
      let formdata = new FormData()
      formdata.append('files',this.BatchAddfile)
      this.$api.upload('url',formdata,{loading:true}).then((res) => {
        console.log(res);
        if (res.return_codes == 0) {
          this.BatchAddfile = []
          this.$refs.upload.clearFiles()
          this.$message.success(res.return_msg)
          this.BatchAdd = false
        }
      })
    },
    removefile(){ //移除文件
      this.BatchAddfile = []
    },  
    file(file){
      this.BatchAddfile = file.raw
    },
    CloseBatcchAdd(){ //导入遮罩关闭
      this.BatchAdd = false
    },
	}
</script>

Batch_Add:
此处的逻辑是先判断遮罩是否打开,没打开则只进行打开操作
接着判断是否有传入文件
在接下来就通过文件流的方式将数据传给后台,文件流名称为’files’
最后在上传成功后清空数据已经列表,并且关闭遮罩

总结

主要有一点需要注意,就是在文件上传完成后,文件依旧存在页面当中。
基于vue+Element UI的文件上传(可拖拽上传)
此处就是通过绑定的ref,然后使用this.$refs.upload.clearFiles()进行清除文章来源地址https://www.toymoban.com/news/detail-400144.html

到了这里,关于基于vue+Element UI的文件上传(可拖拽上传)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue+element ui 实现文件上传下载

    2024年02月14日
    浏览(48)
  • 基于element UI 实现大文件分片上传

    将文件进行切片,上传至服务器,上传完成后通知服务器进行合并 屏幕录制2022-11-11 16.40.06 测试用例 s-upload s-upload-img

    2024年02月01日
    浏览(36)
  • 基于vue+element-ui实现上传进度条

    目录 基于el-upload组件实现进度条的编写 后台进度前台进度条显示 基于el-upload组件实现进度条的编写 ①编写文件上传时的钩子函数 ②监听进度百分比 后台进度前台进度条显示 参考文章: 后台进度前台显示进度条_weixin_30646505的博客-CSDN博客 后端思路: ①创建一个类,封装进

    2023年04月08日
    浏览(41)
  • Vue3 + Element UI 实现文件上传弹出框

    Vue3 + Element UI 实现文件上传 实现如下: 1.首页添加按钮点击弹出文件框 给dialog设置传参 展示对话框,设置 页面部分代码如下: 语法部分代码如下: 2.弹出框 页面部分代码如下: 语法部分代码如下 上述实现弹出框上传文件事件,当文件上传后需要更新文件管理展示页面,

    2024年02月11日
    浏览(60)
  • vue2 - 基于Element UI实现上传Excel表单数据功能

    批量数据上传后台,需要从后台下载一个固定格式的 Excel表格,然后在表格里面添加数据,将数据格式化,再上传给后台,后台做解析处理,往数据库添加数据 点击导入excel按钮,跳转到上传excel功能页面,点击上传或者是通过拖拽都能实现excel表格上传 通过Element UI的 el-di

    2024年02月13日
    浏览(35)
  • vue结合element ui 实现多个文件上传、并删除不符合条件的

    多个文件上传的核心就是将文件append进FormData的实例中,向后台请求时将实例对象传送过去。  多个文件上传,传送的数据: html部分: js部分(this.$request是我自定义的请求方式,大家可以根据自身需要来调整): 1. 我们想要的效果是手动一次性上传多个文件,但是文件选取

    2024年03月20日
    浏览(60)
  • 基于element UI 实现 table 列 拖拽

    问题描述 在开发中遇到一个需求,即实现table列的拖拽,但是调研发现,大部分是基于sorttable.js这个包实现的,但是通过实际应用,发现sorttable.js用在操作element table 组件中并不是很舒服,总会莫名其妙的冒出一些异常bug,于是自行封装一个table 列拖拽组件。 ①element table h

    2024年02月11日
    浏览(32)
  • 基于vue的可拖拽设计的报表看板设计器

    gitee上的不错项目,基于vue实现的可拖拽的看板设计器可以自由搭配颜色和图标,开发者可以只关注业务数据接口,前端不擅长的人员可以直接轻松上手。 1.可支持的元素 文字,边框,常见图表,柱形图,折线饼图等等,还有一些列表数据,当然还支持iframe嵌套,当组件满足

    2024年02月11日
    浏览(58)
  • web前端之拖拽API、上传多图片时拖拽排序、表格行或列拖拽排序、复制元素跨区域放置、拖放、投掷、若依、vuedraggable、sortablejs、element、plus、vue、ui

    前言 vue3+element-puls列表行、列拖拽的需求,想找一个成熟的解决方法。但发现vue3的比较少,所以就把这个分享出来,希望可以帮助到大家。vuedraggable是一款vue3的拖拽插件,基于sortable.js实现,可以用来拖拽列表、菜单、工作台、选项卡等常见的工作场景。安装的是vuedraggabl

    2024年01月22日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包