Element Upload上传多文件请求一次接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Element Upload上传多文件请求一次接口相关的知识,希望对你有一定的参考价值。

参考技术A Element Upload上传组件,在使用默认的情况下,多个文件上传是多次调用接口。想要多个文件只调用一个接口,就需要替换掉默认的上传方法。

需要通过 on-change 钩子函数来对列表进行控制,获取文件列表

替换默认的提交方法

注释部分就是默认的提交方法,改为axios提交formdata

参考: https://www.cnblogs.com/soldier-cnblogs/p/14842110.html

el-upload上传多条一次性上传

参考技术A <el-upload

              class="specialinput"

              ref="upload"

              multiple

              :limit="4"

              :on-preview="handlePreview"

              :on-change="handleChange"

              :on-remove="handleRemove"

              :on-exceed="handleExceed"

              :file-list="imgList"

               list-type="picture-card"

              :http-request="uploadFile"

              :auto-upload="false">

              <i class="el-icon-plus"></i>

            </el-upload>

      // 上传文件

      uploadFile(file)

         this.fileData.append('files', file.file); // append增加数据

      ,

    // 上传到服务器

    submitUpload()

      if (this.imgList.length === 0)

        this.$message(

        message: '请先选择文件',

        type: 'warning'

        )

      else

      const isLt100M = this.imgList.every(file => file.size / 1024 / 1024 < 100);

      if (!isLt100M)

        this.$message.error('请检查,上传文件大小不能超过100MB!');

      else

        this.fileData = new FormData(); // new formData对象

        this.$refs.upload.submit(); // 提交调用uploadFile函数

        this.$axiosPost(

          this.paidanurl + this.paidanport + '/api/Dispatch/UploadImage?flowid='+ this.operaInfo.flowid + '&recordid=' +  this.recordid,this.fileData,function(data)

            if (data.Code == 1)

                this.imgList = [];

                this.$message.success(data.Message);

            else

              this.$message.error(data.Message);

           

          ,

          function(error)

         

        );

       

     

    ,

    //移除

    handleRemove(file, imgList)

      this.imgList = imgList;

    ,

    // 选取文件超过数量提示

    handleExceed(files, imgList)

      this.$message.warning(`当前限制选择 4 个文件,本次选择了 $files.length 个文件,共选择了 $files.length + imgList.length 个文件`);

    ,

    //监控上传文件列表

    handleChange(file, imgList)

      let existFile = imgList.slice(0, imgList.length - 1).find(f => f.name === file.name);

      if (existFile)

      this.$message.error('当前文件已经存在!');

      imgList.pop();

     

      this.imgList = imgList;

     

   

以上是关于Element Upload上传多文件请求一次接口的主要内容,如果未能解决你的问题,请参考以下文章

element-ui upload 多文件单接口上传

elementui el-upload图片文件上传必传校验

element-upload覆盖默认行为(多个文件上传调用一次接口)

elementui el-upload一次接口请求上传多个文件

reactupload批量上传多次调用

vue element upload 组件实现多个文件一个接口上传