vue2,使用element中的Upload 上传文件,自定义上传http-request上传,上传附件支持多选,多个文件只发送一次请求,代码里有注释

这篇具有很好参考价值的文章主要介绍了vue2,使用element中的Upload 上传文件,自定义上传http-request上传,上传附件支持多选,多个文件只发送一次请求,代码里有注释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

复制直接使用,组件根据multiple是否多选来返回附件内容,支持多选就返回数据附件,则返回一个附件对象。文章来源地址https://www.toymoban.com/news/detail-696019.html

//uploadFiles.vue

<template>
  <div>
    <el-upload
      class="avatar-uploader"
      action="#"
      :accept="accept"
      :show-file-list="false"
      :http-request="HttpRequest"
      :multiple="multiple"
      :on-change="onChangeFile"
      ref="uploadFileRef"
    >
      <slot />
    </el-upload>
  </div>
</template>

<script>
export default {
  /**
   * limitation // 文件上传限制大小 type number  50就是50Mb
   * accept // 上传文件类型限制 accept=".xls, .xlsx"
   * multiple// 是否支持多选
   */
  name: "uploadFiles",
  props: ['limitation','accept','multiple'],
  data() {
    return {
      flag:true, // 节流控制
      filesList:[]  // 上传的附件内容
    }
  },
  methods: {
    // 触发父组件的fileRet方法,并返回所选附件数据Array
    updateHeading(files) {
      this.$emit('fileRet',files);
      this.emptyData();
    },
    HttpRequest(data){
      const isLt50M = data.file.size / 1024 / 1024 < this.limitation; // 限制文件大小
      if (!isLt50M) {
        this.$message.error('上传头像图片大小不能超过 50MB!');
        return
      }
      // 调用后台接口逻辑
      this.throttle(()=>{
        let retFile;
        // 如何支持多文件上传,返回附件数组,则返回当个文件对象
        if (this.multiple){
          retFile = this.filesList.map(o=>o.raw)
        } else {
          retFile = data.file
        }
        // 附件上传参数用formData.append('file',retFile)  
        this.updateHeading(retFile)
      },600)
    },
    // 清空已上传的附件数据,初始化
    emptyData() {
      this.$refs.uploadFileRef && this.$refs.uploadFileRef.clearFiles();
      this.filesList = [];
    },
    //使用节流的方式去触发提交,避免多上传附件时,选几个附件就会触发几次提交
    throttle(fn,delay){
      if(this.flag){
        setTimeout(() =>{ fn();this.flag = true },delay)
      }
      this.flag = false;
    },
    onChangeFile(file,fileList){
      this.filesList = fileList
    },
  },
  mounted() {},
  computed: {},
  watch: {}
}
</script>

到了这里,关于vue2,使用element中的Upload 上传文件,自定义上传http-request上传,上传附件支持多选,多个文件只发送一次请求,代码里有注释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Vue Element ui Upload组件在上传文件时,动态切换 action上传路径

    当我们在使用 Element ui,Upload组件时,官网默认的基础配置如下 现在的需求是,如果页面只有 一个 el-upload组件,需要上传的文件,根据不同的类型,切换不同的action 上传路径。 首先我这里选择,通过调用 before-upload 上传文件之前的钩子函数,函数接收一个参数,就是上传的

    2024年02月11日
    浏览(42)
  • vue3 - 使用element-plus组件库el-upload上传超大mp4视频分片上传,Upload上传大文件mp4视频进行切片分段上传到后端服务器教程,vue3如何上传很大的视频(详细示例代码

    在vue3+elementPlus中,使用el-upload组件\\\"切片分段\\\"上传mp4大视频到服务器,支持任意大视频、大文档、大压缩包等超大文件,通用方法将其拆分成多个小段进行逐个逐条上传到后端(支持断点续传、下载预览)。 详细大文件分片功能源码,可只拿前端源码或只拿springboot(Java)后

    2024年03月16日
    浏览(82)
  • vue element el-upload附件上传、在线预览、下载当前预览文件

    上传 在线预览(iframe): payload: response: 全部代码: 初版–01

    2024年02月14日
    浏览(58)
  • vue2+element ui 上传文件

    完全基于elementui组件封装的上传组件 ,后期继续优化 父组件使用 1、引入组件

    2024年02月04日
    浏览(52)
  • Element Ui 之 文件上传组件的使用 Upload

    最近正好学到了Element Ui的文件上传组件,虽然不太难但一个人琢磨还是整了很久 以下是我整理的规范性文件上传组件为例 前端 后端 此处的String dirPath = \\\"D:/files\\\"可以选取你电脑上的指定位置 接上面 如有错误,欢迎指出

    2024年02月13日
    浏览(51)
  • 使用element-ui的Upload 上传文件

    使用Upload 进行文件上传 https://element.eleme.cn/#/zh-CN/component/upload 注:当文件和一些其他数据(姓名,年龄)进行一起上传时候可分为两种过程 第一种:单独的文件上传地址,上传完文件后,后端返回该文件的地址,前端将该地址同其他数据(姓名,年龄)再次上传。 第二种:

    2024年02月12日
    浏览(41)
  • Element UI | Upload 使用submit方法手动上传文件

    点击上传文件按钮不立刻进行上传,而是点击提交后再调用上传接口,和表单一起提交。 js:  判断文件没有上传即先进行文件上传,上传文件成功后在调用表单上传接口,否则直接调用接口上传表单。submit为element ui内部方法。表单上传接口一般传递文件id。

    2024年02月15日
    浏览(41)
  • vue3 + element-plus 的 upload + axios + django 文件上传并保存

    座右铭: 怎么简单怎么来,以实现功能为主。 欢迎大家关注公众号与我交流  之前在网上搜了好多教程,一直没有找到合适自己的,要么只有前端部分没有后端,要么就是写的不是很明白。所以还得靠自己摸索出来后,来此记录一下整个过程。 其实就是不要用默认的 actio

    2024年02月20日
    浏览(52)
  • vue 2.0+element ui 使用el-upload图片上传

    ** ** 使用el-upload将图片加载成Base64格式,通过form统一上传给后端 1、创建通用component ImgComponent.vue 2、在父组件中使用 3、最后通过form统一submit到后端,图片参数传base64即可。 ps:起初在数据库中,将存图片的字段类型设置为BLOB,以二进制的形势存储,后面发现会将“:”转

    2024年02月12日
    浏览(57)
  • element UI的Upload 自定义上传

    2024年04月22日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包