uni-app 上传视频到阿里云OSS,安卓端进度显示异常

发布于 1周前 作者 wuwangju 来自 Uni-App

uni-app 上传视频到阿里云OSS,安卓端进度显示异常

插件需求# uniapp 上传视频 到阿里云oss,安卓端进度显示异常

寻求解决方式

1 回复

在uni-app中上传视频到阿里云OSS时,如果遇到安卓端进度显示异常的问题,可能是由于多种原因引起的,比如网络波动、文件大小计算不准确、进度回调处理不当等。以下是一个基本的代码示例,展示了如何使用uni-app和阿里云OSS SDK实现视频上传,并尝试解决进度显示异常的问题。

首先,确保你已经安装并配置了阿里云OSS的SDK。在manifest.json中配置阿里云的相关信息,并在项目中引入OSS SDK。

// manifest.json 中配置阿里云信息(示例)
"mp-weixin": {
  "setting": {
    "urlCheck": false
  },
  "cloudfunctionsRoot": "cloudfunctions/",
  "aliyun": { // 阿里云配置
    "accessKeyId": "your-access-key-id",
    "accessKeySecret": "your-access-key-secret",
    "oss": {
      "bucket": "your-bucket-name",
      "region": "your-region"
    }
  }
}

然后,在你的uni-app项目中,编写上传视频的代码:

// 引入阿里云OSS SDK
const OSS = require('ali-oss');

// 初始化OSS客户端
const client = new OSS({
  region: 'your-region',
  accessKeyId: 'your-access-key-id',
  accessKeySecret: 'your-access-key-secret',
  bucket: 'your-bucket-name'
});

// 上传视频函数
function uploadVideo(filePath) {
  const fileName = 'videos/' + new Date().getTime() + '-' + filePath.split('/').pop();
  
  client.put(fileName, filePath, {
    progress: function* (percent, checkpoint) {
      // 更新上传进度
      console.log(`上传进度: ${percent.toFixed(2)}%`);
      // 这里可以调用uni-app的更新UI函数,比如使用$emit触发事件更新进度条
      // this.$emit('updateProgress', percent.toFixed(2));
    }
  }).then(result => {
    console.log('上传成功:', result);
  }).catch(err => {
    console.error('上传失败:', err);
  });
}

// 调用上传函数
// 假设filePath是已经选择好的视频文件路径
uploadVideo('/path/to/your/video.mp4');

注意几点:

  1. 进度回调:在progress回调中,你可以获取上传的进度百分比,并更新UI。这里使用console.log仅作示例,实际开发中应替换为更新UI的逻辑。
  2. 错误处理:添加适当的错误处理逻辑,以便在上传失败时能够给用户反馈。
  3. 文件路径:确保filePath是有效的文件路径,且该文件在设备上可访问。

通过上述代码,你应该能够在uni-app中实现视频上传到阿里云OSS,并在安卓端正确显示上传进度。如果进度仍然显示异常,建议检查网络状况、文件大小以及OSS SDK的版本兼容性。

回到顶部