element upload http-request 设置上传进度

1 篇文章 0 订阅
1 篇文章 0 订阅

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

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

HTML代码

 	<el-upload show-file-list action="#" class="avatar-uploader el-upload" :http- request="handleChange">
            <el-button size="small" type="primary">点击上传</el-button>
     </el-upload>
    <el-progress v-if="show" :percentage="percentage"></el-progress>

JS 部分

 handleChange(file) {
      console.log(file);
      this.show = true;
      getQiNiuUploadToken({}).then((res) => {
        let fd = new FormData();
        let fileName = file.file.name + new Date().getTime();
        fd.append("file", file.file);
        fd.append("token", res.data.token);
        fd.append("key", fileName);
        this.axios
          .post("http://upload.qiniup.com/", fd, {
            headers: {
              "Content-Type": "multipart/form-data",
            },
            onUploadProgress: (progressEvent) => {
            // onUploadProgress 文件上传时的函数   上传进度
              this.percentage = Number(
                ((progressEvent.loaded / progressEvent.total) * 100).toFixed(0)
              );
            },
          })
          .then((res1) => {
            this.address = res.data.domain + fileName;
            this.$message.success("上传成功");
          })
          .catch((err) => {
            console.log(err);
          });
      });
    },
element ui的http-request是一个用于自定义文件上传的函数。在这个函数中,通过参数param可以获取到要上传的文件,可以通过param.file来获取文件对象。在函数中,首先创建一个FormData对象,然后将文件对象添加到FormData中,同时可以添加其他参数。接下来,创建一个XMLHttpRequest对象,使用open方法指定请求的方法和URL,然后通过send方法发送请求。在发送请求之前,可以通过xhr.upload.addEventListener方法监听上传进度。当上传完成后,可以通过xhr.onload方法获取到上传到阿里云的文件地址,并进行相应的处理。\[2\] #### 引用[.reference_title] - *1* *2* [Element UI - http-request 覆盖默认的上传行为,自定义上传的实现](https://blog.csdn.net/m0_37893932/article/details/79237308)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [elementUI 上传组件 http-request (覆盖默认的上传行为,可以自定义上传的实现)使用](https://blog.csdn.net/qq_39759115/article/details/82287207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值