js 实现拖拽上传视频(文件同理)

html

<div id="uploadVideoBox">
<div>

js

//运用id绑定方法 不需要再去使用queryselectAll查找dom元素
//实现一个拖拽功能要绑定四个方法 dragenter、dragover、dragleave、drop,实现代码要放在drop中,其他三个是为了防止浏览器默认行为,否则拖拽会有bug
    uploadVideoBox.addEventListener('dragenter', function (e) {
      e.stopPropagation();//阻止默认事件
      e.preventDefault();//阻止默认事件
    }, false);//false 参数每个都要加以防个别浏览器报错
    uploadVideoBox.addEventListener('dragover', function (e) {
      e.stopPropagation();
      e.preventDefault();
    }, false);
    uploadVideoBox.addEventListener('dragleave', function (e) {
      e.stopPropagation();
      e.preventDefault();
    }, false);
    uploadVideoBox.addEventListener('drop', function (e) {
      e.stopPropagation();
      e.preventDefault();
     dropImage(e.dataTransfer.files)
    }, false);

//具体上传步骤
//以下$Message 是提示文本框方法,有需要自行修改
    dropImage(fileList) {
      if (fileList.length != 1) {
        this.$Message.warning('最多只能上传一个文件')
        return
      }
      const file = fileList[0];
      const typeList = [".mp4", ".MP4", ".mov", ".MOV", ".avi", ".wmv", ".mpg", ".flv"];
      if (!file) {
        return
      }
      //验证视频格式
      const fileType = file.name.substring(file.name.lastIndexOf('.'))
      console.log('fileType', fileType);
      if (!typeList.includes(fileType)) {
        this.$Message.error('请选择正确格式的视频!')
        return
      }
      //验证视频大小
      if (file.size > 200 * 1024 * 1024) {
        this.$Message.error('上传文件大小不能超过200M!')
        return
      }
      //这是要重新命名
      const time = new Date().getTime()
      const fileName = time + file.name.substring(file.name.lastIndexOf('.'))
      this.videoFile = new File([file], fileName)
      this.$Message.success('选择成功!')
      console.log("newFile", this.videoFile);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值