Spring Boot + Vue3 实现七牛云大视频上传

在现代的Web应用中,文件上传是一个常见而重要的功能。本篇博客将介绍如何通过Vue.js和Spring Boot实现一个简单的视频上传功能,同时使用七牛云作为存储服务。

1. 前端实现(Vue.js)

HTML模板
<el-form-item label="宣传视频" prop="promotionalVideo">
  <el-upload style="width: 850px" v-model:file-list="promotionalVideoFileList" :limit="1" accept=".mp4" :http-request="handleUpload">
    <el-button type="primary">选择宣传视频上传</el-button>
  </el-upload>
</el-form-item>

在这里,我们使用了Element UI的上传组件,限制了文件类型为.mp4,同时只能上传一个文件。上传的具体实现逻辑在下面的JavaScript代码中。

JavaScript代码
import * as qiniu from 'qiniu-js';

async function handleUpload(option) {
   
  const response = await getUploadToken();
  const upToken = response.data;

  const config = {
   
    useCdnDomain: true,
    region: qiniu.region.z0,
    concurrentRequestLimit: 6,
  };

  const observable = qiniu.upload(option.file, null, upToken, null, config)
  return observable.subscribe({
   
    next(resp) {
   
      option.onProgress({
    percent: resp.total.percent })
    },
    error(err) {
   
      option.onError(err)
    },
    complete(resp) {
   
      // 上传成功后将文件名保存到form中
      form.value.promotionalVideo = resp.key
      option.onSuccess(resp)
    }
  })
}

在这部分代码中,我们使用了七牛云提供的JavaScript SDK完成文件的上传过程。通过调用getUploadToken方法获取上传凭证,然后使用qiniu.upload方法实现具体的上传逻辑。上传成功后,将文件名保存到表单中。

2. 后端实现(Spring Boot)

后端Controller
@ApiOperation("获取七牛云上传Token")
@GetMapping(value = "/uploadToken")
public R<String> getUploadToken() {
   
    return R.ok(qiniuGetUploadTokenWechatService.getUploadToken());
}

这是一个简单的Spring Boot Controller,通过qiniuGetUploadTokenWechatService.getUploadToken()获取上传凭证,并返回给前端。

Service部分
public class QiniuGetUploadTokenWechatService {
   
    public String getUploadToken() {
   
        Auth auth = Auth.create(qiniuConfig.getAccessKey(), qiniuConfig.getSecretKey());
        return auth.uploadToken(qiniuConfig.getBucket());
    }
}

QiniuGetUploadTokenWechatService类中,我们使用了七牛云提供的Java SDK创建了Auth对象,并使用配置文件中的Access Key、Secret Key、Bucket信息生成上传凭证。

3. 总结

通过以上步骤,我们成功地实现了一个基于Vue.js和Spring Boot的视频上传功能,利用七牛云作为文件存储服务。这个例子展示了前后端如何协同工作,使用户能够轻松地上传视频文件。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 06:28:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 06:28:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 06:28:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 06:28:02       20 阅读

热门阅读

  1. 3D人体运动重建

    2024-02-01 06:28:02       41 阅读
  2. 【后端】HTTP

    2024-02-01 06:28:02       31 阅读
  3. 小程序接入企业微信「联系我」功能

    2024-02-01 06:28:02       40 阅读
  4. Visual Studio 和Clion配置Cocos2d-x环境

    2024-02-01 06:28:02       41 阅读
  5. unity 使用数字图片来代替数字0到9显示

    2024-02-01 06:28:02       29 阅读
  6. Tomcat调优教程

    2024-02-01 06:28:02       26 阅读
  7. 梯度下降法解决2D映射3D

    2024-02-01 06:28:02       34 阅读
  8. tomcat

    tomcat

    2024-02-01 06:28:02      25 阅读
  9. prometheus-altermanager之钉钉webhook

    2024-02-01 06:28:02       40 阅读
  10. SVN单个项目迁移到Gitlab,保留历史提交记录

    2024-02-01 06:28:02       33 阅读
  11. git 提交的文件压缩机制

    2024-02-01 06:28:02       31 阅读