当前位置:   article > 正文

elementUI 上传组件 http-request (覆盖默认的上传行为,可以自定义上传的实现)使用

elementUI 上传组件 http-request (覆盖默认的上传行为,可以自定义上传的实现)使用

elementUI 上传组件很方便我们上传个种类型的文件,但是一般我们的请求都是自己配置的,通过 action="url"传入上传地址就感觉不太喜欢

这时候我们就可以使用 http-request 属性来覆盖默认的上传行为(即action="url"),自定义上传的实现

开篇一张图

html代码

    <el-dialog title="批量导入" :visible.sync="importDialog" width="30%">
      <div class="importDialog-content">
        <el-upload ref="upload" 
                   :limit="1"  <!-- 最大允许上传个数 -->
                   :auto-upload="false"  <!-- 是否在选取文件后立即进行上传 -->
                   drag 
                   :http-request="uploadFile"  <!-- 覆盖默认的上传行为,可以自定义上传的实现 -->
                   accept='.xls,.xlsx' <!-- 接受上传的文件类型 -->
                   action="customize">
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或
            <em>点击上传</em>
          </div>
          <!-- <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div> -->
        </el-upload>
      </div>
      <span slot="footer" class="dialog-footer">
        <span class="template-download">
          <i class="el-icon-download"></i>格式模板下载:data.xlsx
        </span>
        <el-button @click="importDialog = false">取 消</el-button>
        <el-button type="primary" @click="submitUpload">确定上传</el-button>
      </span>
    </el-dialog>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

js部分

     // 确认上传
    submitUpload() {
      this.$refs.upload.submit();
    },
    // 文件上传
    uploadFile(params) {
      console.log("uploadFile", params);

      const _file = params.file;
      const isLt2M = _file.size / 1024 / 1024 < 2;

      // 通过 FormData 对象上传文件
      var formData = new FormData();
      formData.append("file", _file);

      if (!isLt2M) {
        this.$message.error("请上传2M以下的.xlsx文件");
        return false;
      }

      // 发起请求
      RequestUploads(formData).then(res => {
        console.log("_RequestUploads_", res);
        if (code === 2000) {
          this.$message({
            type: "success",
            message: res.msg
          });

          // 隐藏弹出框
          this.importDialog = false;
        } else {
          this.$message({
            type: "warning",
            message: res.msg
          });
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/805624
推荐阅读
相关标签
  

闽ICP备14008679号