el-upload上传文件实现视频上传

在这里插入图片描述
上传成功后,下面的滚动条和文件名消失

 <el-form-item label="上传视频" prop="videoPath" :required="videoTo">
          <el-upload
            ref="video"
            class="upload-demo"
            v-model="form.videoPath"
            drag
            action="/api/EToolFile"
            :multiple="false"
            :before-upload="beforeUploadVideo"
            :http-request="UploadVideo"
          >
            <i class="el-icon-upload"></i>
            <div class="el-upload__text">
              将文件拖到此处,或<em>点击上传</em>
            </div>
          </el-upload>
          //进度条
          <el-progress
            v-show="progressFlag"
            :percentage="loadProgress"
          ></el-progress>
</el-form-item>
 return {
      progressFlag: false,
      loadProgress: 0,
     }

method中的方法

//视频上传
    UploadVideo(params) {
      this.form.videoPath = URL.createObjectURL(params.file);
      this.progressFlag = true;
      this.loadProgress = 0;
      const interval = setInterval(() => {
        if (this.loadProgress >= 99) {
          clearInterval(interval);
          return;
        }
        this.loadProgress += 1;
      }, 20);
      upload("/api/EToolFile", params.file).then((res) => {
        console.log(res);
        this.form.videoPath = res.data.data.name;
        this.progressFlag = false;
        this.loadProgress = 100;
        this.$message({
          type: "success",
          message: "上传成功!",
        });
        // 清空上传列表
        this.$refs.video.clearFiles();
      });
    },
    beforeUploadVideo(file) {
      const isLt30M = file.size / 1024 / 1024 < 30;
      if (
        [
          "video/mp4",
          "video/ogg",
          "video/flv",
          "video/avi",
          "video/wmv",
          "video/rmvb",
        ].indexOf(file.type) == -1
      ) {
        this.$message.error("请上传正确的视频格式");
        return false;
      }
      if (!isLt30M) {
        this.$message.error("上传视频大小不能超过30MB哦!");
        return false;
      }
    },
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
el-upload是一个Vue组件,用于实现文件上传功能。根据提供的引用内容,可以使用el-upload组件的属性和方法来实现文件上传。 首先,可以设置auto-upload属性为false,取消自动上传功能。这样,在选中文件后,文件不会自动上传。然后,在按钮的点击事件中,使用DOM调用submit方法手动上传文件。\[1\] 另一种实现方式是,在点击确定按钮时,创建一个formData对象,并遍历选中的文件列表,使用append方法将文件添加到formData中。最后,调用uploadFiles函数,将formData作为参数传递给axios的post方法,实现文件上传。\[2\] 还可以使用http-request属性来自定义上传请求的行为。在httpRequest函数中,可以获取到选中的文件对象,然后创建一个formData对象,并将文件添加到formData中。最后,使用axios的post方法将formData发送到服务器进行文件上传。\[3\] 综上所述,el-upload组件可以通过设置auto-upload属性、使用submit方法或自定义http-request函数来实现文件上传功能。 #### 引用[.reference_title] - *1* *2* *3* [el-upload上传文件](https://blog.csdn.net/chilanzi/article/details/125200573)[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^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值