elementui上传视频

518 阅读1分钟

 element有个上传组件el-upload

效果图

​编辑

组件

<el-upload
    :action="uploadFileUrl"
    :before-upload="beforeUpload"
    :on-success="handleUploadSuccess"
    :on-remove="handleRemove"
    :before-remove="beforeRemove"
    multiple
    :limit="1"
    :on-exceed="handleExceed"
    :file-list="fileList"
    class="avatar-uploader"
    id="avatar-uploader"
>

js代码

export default{
    data() {
        uploadFileUrl: process.env.VUE_APP_BASE_API + "/file/upload",
    },
    methods {
        beforeUpload(file) {
          const isMp4 = file.type === "video/mp4/webm/mov/flv/ani/wmv/3gp/m4v/mkv";
          // 限制文件最大不能超过 50M
          const isLt50M = file.size / 1024 / 1024 < 50;
          if (!isMp4) {
            this.$message.error("视频只能是mp4格式!");
          }
          if (!isLt50M) {
            this.$message.error("上传头像图片大小不能超过 300MB!");
          }
          return isMp4 && isLt50M;
        },
        // 文件上传成功回调
        handleUploadSuccess(files) {
          console.log("upload success", files,this.fileList);
          if (files.code === 200) {
            const { data } = files;
            this.form.videoUrl = data.url;
          }
        },
        handleExceed(files, fileList) {
            this.$message.warning(
            `当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
              files.length + fileList.length
            } 个文件`
            );
        },
        // 文件上传成功处理
        handleFileSuccess(response, file, fileList) {
            this.upload.open = false;
            this.upload.isUploading = false;
            clearTimeout(this.timer);
            this.$refs.upload.clearFiles();
            this.$alert(response.msg, "导入结果", {
                dangerouslyUseHTMLString: true,
            });
            this.getList();
      
       },
       //图片删除
        handleRemove(file, fileList) {
          this.form.videoUrl = null;
          this.fileList = [];
        },
        beforeRemove(file) {
          return this.$confirm(`确定移除 ${file.name}?`);
        },
    }
}