vue2 element-ui 的 upload 组件手动上传

vue2 element-ui 的 upload 组件手动上传

背景:官方给的手动上传需要定义其它按钮在额外多一步操作,其实想 upload 上传文件后直接走自定义方法,每次都调试半天才可以使用。

这里记录下,下次在碰到 element-ui 手动上传直接使用,这里只记录关于手动上传的必要属性, 其它属性参考element-ui文档。

【element-ui 官方文档】

代码如下:

 //template 模板里面定义按钮
 <el-upload
    action="#"
    ref="uploadRef"
    :http-request="customRequest"
    :on-success="handleFileSuccess"
    :show-file-list="false"
 >
    <el-button size="mini">上传密码字典</el-button>
 </el-upload>

 //js methods 里面定义的方法

  handleFileSuccess() {
    if(this.$refs?.uploadRef){
      this.$refs?.uploadRef.submit()
    }
  }

  customRequest(param) {
    const file = param.file
    //拿到文件自定义自己的要怎么处理逻辑
    //列举下面两种场景

    //读取文件内容
    this.getFileRes(file)

    //调用后台接口
    this.customFetch(file)
  }

  //创建文件读取器,读取文件内容
  getFileRes(file) {
    const reader = new FileReader()

    reader.onload = () => {
      //处理文件结果逻辑
      console.log(reader.result)
    }

    reader.readAsText(file)
  }


  //自定义上传接口参数
  async customFetch(file) {
    const formData = new FormData();
    formData.append('file', file);
    // 可以在这里添加其他参数
    formData.append('other', "xxx");

    axios.post("url", formData)
      .then(response => {
        //上传成功
      })
      .catch(error => {
        //上传失败
      });
  }

upload 属性
action:上传的地址
ref:组件的实例
http-request:覆盖默认的上传行为,可以自定义上传的实现
on-success:文件上传成功时的钩子
show-file-list:是否显示已上传文件列表

总结:上述代码中

  • 使用了 http-request 属性来指定自定义的上传函数 customRequest。
  • 我们在文件上传成功时,调用组件 upload 的 submit 方法,从而触发 httpRequest 方法,实现手动上传。

有疑问的同学可以私信我、对帮助到同学欢迎大家收藏评论。

  • 16
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值