七牛sdk 上传视频 - 前端

本文介绍了前端使用七牛JavaScript SDK上传视频的详细步骤,包括如何渲染上传标签、进行文件校验、图片转Base64预览、执行七牛上传及处理token,以及删除和预览操作。文章强调了异步校验和上传回调的重要性,并鼓励读者讨论和打赏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

七牛地址

前端接入地址:JavaScript SDK
具体的引用方式看情况而定

干货来了

首先我们渲染上传标签

<input
   ref={
   input => (this.fileSelectorInput = input)}
   type="file"
   className={
   styles["input"]}
   accept="video/*, image/*, mtvideo/9, mtimage/9"
   onChange={
   this.onFileChange}
 />

上传的时候,我们可以通过 this.fileSelectorInput 拿到当前上传视频(图片)的数组,进行前置校验,是否符合尺寸,大小标准。

onFileChange = async e => {
   
    let fileSelectorEl = this.fileSelectorInput;
    let {
    mediaSize } = this.props;
    const {
    isVideo } = this.state;
    if (fileSelectorEl && fileSelectorEl.files && fileSelectorEl.files.length) {
   
      // 保存所有的复合校验逻辑的文件
      const allFiles = [];
      if (!mediaSize) {
   
        mediaSize = isVideo ? 50 : 5;
      }

      for (let index = 0; index < fileSelectorEl.files.length; index++) {
   
        const file = fileSelectorEl.files[index];

        const isLt = file.size / 1024 / 1024 <= mediaSize;
        if (!isLt) {
   
          message.error(`上传文件大小不得超过${
     mediaSize}M`);
          return false;
        }

        if (!isVideo) {
   
          try {
   
            // 校验尺寸
            await this.handleBeforeUploadSize(file);
            allFiles.push(file);
          } catch (_err) {
   
            message.error("上传图片尺寸不合适");
          }
        } else {
   
          allFiles.push(file);
        }
      }
      if (!allFiles.length) return;
      const newFiles = this.parseFile(allFiles[0], 0);

      Promise.all(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值