解决el-upload批量上传只执行一次成功回调on-success的问题

目录
  • el-upload批量上传只执行一次成功回调on-success
  • el-upload自定义上传后回调上传成功和失败事件
  • 总结

el-upload批量上传只执行一次成功回调on-success

删除掉:

file-list="fileList"

在网上找了下解决方法,发现取消file-list绑定即可,网上也有自定义的上传事件的方法,不过这个操作起来更方便一些。

上面方法还是有点问题,正确的方法是在后台拉数据的时候,创建一个临时变量filelist2,然后将后台的数据filelist赋值给filelist2,再将filelist2绑定(:file-list="filelist2")

然后对数据的操作都在filelist中。

el-upload自定义上传后回调上传成功和失败事件

template部分:

<el-upload
  class="el_upload_above"
  action=""
  ref="upload"
  :limit="limitnum"
  list-type="picture-card"
  :http-request="uploadSectionFile"
  :auto-upload="true"
  :file-list="fileList"
  :on-error="uploadFileError"
  :on-success="uploadFileSuccess"
  :on-exceed="exceedFile"
  :on-remove="removeFile">
</el-upload>

script部分:

<script>
  export default {
    data() {
      return {
          fileList:[],//上传的文件列表
          limitnum:2,//最大允许上传个数 
      };
    },
    methods: {
        //自定义上传
        uploadSectionFile(param){
             var fileObj = param.file;
          var form = new FormData();
           // 文件对象
          form.append("file", fileObj);
          this.$axios.post('/file/upload',form).then(res => {
            param.onSuccess(res)
          }).catch(({err}) => {
            param.onError(err)
          })  
        },
          //上传失败
        uploadFileError(err, file, fileList){
          this.$message.error("上传失败!")
        },
          //上传成功
        uploadFileSuccess(response, file, fileList){
          if(response.data.error==0){
            file.response=response.data.data;
            this.fileList.push(file)
          }else{
            this.$message.error(response.data.message);//文件上传错误提示
          }
        },
        // 文件超出个数限制时的钩子
        exceedFile(files, fileList){
          this.$message.error('只能上传'+this.limitnum+'个文件');
        },
        //删除文件
        removeFile(file,fileList) {
          this.fileList=fileList;
        },
    }
  }
</script>

注释

自定义上传后,成功和失败需要在自定义上传代码中触发(onSuccess / onError)。在组件部分需要写文件上传或失败的回调事件(uploadFileSuccess / uploadFileError)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue封装el-upload批量上传只请求一次接口

    目录 1.概述 2.封装el-upload组件实现批量上传 1.引入上传组件 2.封装自定义上传方法 3.axios封装 1.概述 el-upload组件默认批量上传逻辑是可以批量选择文件,点击上传时候是每个文件调用一次接口,请求接口时不是批量传递文件.这样会造成上传接口频繁调用,压力增大,不利于接口的稳定性.因此我们需要对el-upload组件进行封装,实现批量文件上传只调用一次接口. 2.封装el-upload组件实现批量上传 1.引入上传组件 在vue的template标签中引入el-up

  • vue使用Element el-upload 组件踩坑记

    目录 一.基本使用 二.图片数量控制 三.图片格式限制/可以选中多张图片 补充:在vue项目中使用element-ui的Upload上传组件 一.基本使用 最近研究了一下 el-upload组件 踩了一些小坑  写起来大家学习一下 很经常的一件事情 经常会去直接拷贝 element的的组件去使用 但是用到上传组件时 就会遇到坑了 如果你直接去使用upload 你肯定会遇见这个错误 而且 上传的图片 可能会突然消失  这时候如果你没有接口  你是完全不知道为什么移除的  所以 无接口时 只能去猜测

  • element upload 钩子函数的坑及解决

    目录 element upload 钩子函数的坑 element-ui中组件函数钩子自带参数,不能添加参数问题 element upload 钩子函数的坑 因为需求需要我将element 的upload组件放在了el-dialog中,但是坑就在这 看图片的上方是不是可以看到上传成功四个大字,但是它并不是真的在上传成功后显示出来的,只要页面加载成功,打开和关闭el-dialog都会出来这四个大字,来看代码 这是upload部分设置代码: (请忽略方法名称的不规范,这里只做个演示) on-succe

  • 解决el-upload批量上传只执行一次成功回调on-success的问题

    目录 el-upload批量上传只执行一次成功回调on-success el-upload自定义上传后回调上传成功和失败事件 总结 el-upload批量上传只执行一次成功回调on-success 删除掉: file-list="fileList" 在网上找了下解决方法,发现取消file-list绑定即可,网上也有自定义的上传事件的方法,不过这个操作起来更方便一些. 上面方法还是有点问题,正确的方法是在后台拉数据的时候,创建一个临时变量filelist2,然后将后台的数据filelis

  • Thinkphp3.2简单解决多文件上传只上传一张的问题

    html简单页面: index.html代码: <form action="{:U('index/upload')}" method="post" enctype="multipart/form-data"> 文件上传:<input type="file" name = "test[]"> 文件上传:<input type="file" name = &qu

  • TP3.2批量上传文件或图片 同名冲突问题的解决方法

    本文实例为大家分享了TP3.2批量上传文件或图片的具体代码,并解决了同名冲突问题,供大家参考,具体内容如下 1.html <form action="{:U('Upload/index')}" enctype="multipart/form-data" method="post" > <p><input type="file" id="file3" name="ID[

  • .net core版 文件上传/ 支持批量上传拖拽及预览功能(bootstrap fileinput上传文件)

    上篇文章给大家介绍了MVC文件上传支持批量上传拖拽及预览文件内容校验功能 本篇内容主要解决.net core中文件上传的问题  开发环境:ubuntu+vscode 1.导入所需要的包:nuget install bootstrap-fileinput 注意:这里的导包需要在终端导入[需要在wwwroot文件夹下执行nuget命令]如下图 如果发现没有nuget命令,则需要通过apt-get 或者yum 给系统安装nuge包管理工具,这个nuget和vscode中的插件不是一回事 2前台页面编写

  • php + WebUploader实现图片批量上传功能

    一.webuploader webuploader主要用来做文件的上传,支持批量上传和图片预览,图片预览是将图片生成base64数据直接在标签中使用,所以能够达到的效果是未真正上传图片可以先看到上传的效果.更多具体的介绍,可以上webuploader的官方网址看,我一直认为,看官网文档是学习最直接的途径. webuploader官方网站,顺带一提,webuploader是由Baidu Fex Team团队进行维护的. 二. webuploader上传原理 1. PHP+HTML表单上传文件 在讲

  • 批量上传Jar包到Maven私服的工具的方法

    基本信息 适用环境:内网环境下的 Maven 私服,无法连接外网(或者需要翻墙),需要通过其他手段下载完依赖后导入到内网私服的情况. 功能描述: 单个依赖包含的pom,jar等文件应该在一个单独的目录中,可以指定下面的路径,上传 gson 到私服. 还可以指定到 f:\\.m2\\repository\\Gson\\gson,上传 gson 的多个版本. 也可以直接 f:\\.m2\\repository,将整个仓库下面的所有 jar 包的所有版本都上传到私服. 注意: 上传前,如果允许重复上传

  • js使用formData实现批量上传

    最近项目需要批量上传附件,查了下资料,网上很多但看着一脸懵,只贴部分代码,介绍也不详细,这里记录一下自己的采坑与多种实现,以免以后忘记. 这里先介绍下FormData对象,以下内容摘自地址 XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttpRequest的send()方法来异步的提交这个"表单".比起普通的ajax,使用FormData的

  • jquery插件uploadify实现带进度条的文件批量上传

    有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案,分享给大家供大家参考,具体如下 先上效果图: 具体代码如下: 在页面中如下 完整页面代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <

  • 解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法

    最近用ThinkPHP开发一个项目,集成了批量上传文件插件Uploadify,在谷歌Chrome和IE下都能正常上传,只有火狐下提示这个错误,网上找了很多解决办法,基本都说flash在firefox下重新发起session会话,由于session没有验证通过所以报错,这个问题网上有很多解决方案,但是试了很多,都没有真正解决我的问题,最后看了官方的解决方案 http://www.uploadify.com/documentation/uploadify/using-sessions-with-up

随机推荐