uni-app hbuildx 4.36升级后,uni.uploadFile上传视频到阿里云总返回400错误,且uni.chooseImage选择视频功能总是失败报错

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

uni-app hbuildx 4.36升级后,uni.uploadFile上传视频到阿里云总返回400错误,且uni.chooseImage选择视频功能总是失败报错

hbuildx升级为4.36后,uni.uploadFile上传视频到阿里云总是包400,而且uni.chooseImage选择视频总是失败报错
上传阿里云报:<?xml version="1.0" encoding="UTF-8"?>
<Error>
IncorrectNumberOfFilesInPOSTRequest
<Message>POST requires exactly one file upload per request.</Message>
<RequestId>675B8F6ED326A131330054DF</RequestId>
<HostId>jwmqc.oss-cn-shenzhen.aliyuncs.com</HostId>
<EC>0006-00000107</EC>
<RecommendDoc>https://api.aliyun.com/troubleshoot?q=0006-00000107</RecommendDoc>
</Error>
有遇到同样问题的吗,怎么解决

相关链接 :


1 回复

针对您提到的uni-app在HBuilderX 4.36升级后遇到的uni.uploadFile上传视频到阿里云返回400错误以及uni.chooseImage选择视频功能失败的问题,这里提供一些可能的代码示例和检查点,以帮助您定位和解决问题。请注意,由于无法直接访问您的代码和服务器配置,以下示例仅供参考,您可能需要根据实际情况进行调整。

1. 检查uni.chooseImage选择视频功能

首先,确保您在使用uni.chooseImage时正确设置了sourceTypemediaType参数以支持视频选择。例如:

uni.chooseImage({
    count: 1, // 选择数量
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机
    mediaType: ['video'], // 只选择视频
    success: (res) => {
        console.log('选择的视频路径:', res.tempFilePaths[0]);
        // 这里可以继续调用uploadFile上传视频
    },
    fail: (err) => {
        console.error('选择视频失败:', err);
    }
});

2. 检查uni.uploadFile上传视频到阿里云

对于400错误,这通常意味着请求的格式或参数有误。请检查以下几点:

  • URL和参数:确保上传URL正确无误,且所有必要的参数(如OSS的AccessKeyId, Signature, Timestamp等)都已正确包含在请求中。
  • 文件字段名:确保file字段名与阿里云OSS配置的一致。
  • Headers:检查是否需要设置特定的Content-Type。

示例代码:

const filePath = '...'; // 从chooseImage获取的视频路径
const uploadUrl = 'https://your-oss-endpoint.oss-cn-hangzhou.aliyuncs.com/your-bucket-name';

uni.uploadFile({
    url: uploadUrl,
    filePath: filePath,
    name: 'file', // 确保与OSS配置一致
    formData: {
        'key': 'your-object-key',
        'OSSAccessKeyId': 'your-access-key-id',
        'Signature': 'your-signature',
        'Timestamp': 'your-timestamp',
        // 其他可能需要的参数
    },
    success: (uploadFileRes) => {
        console.log('上传成功:', uploadFileRes);
    },
    fail: (err) => {
        console.error('上传失败:', err);
    }
});

3. 调试建议

  • 查看控制台日志:仔细检查控制台输出的错误信息,这可能会给出更多线索。
  • 网络请求抓包:使用抓包工具(如Charles、Fiddler)检查实际发出的HTTP请求和响应,确保请求符合预期。
  • 阿里云OSS配置:重新检查阿里云OSS的配置,确保所有权限和策略设置正确。

希望这些信息能帮助您解决问题!如果问题依旧存在,可能需要进一步检查服务器端的日志或联系阿里云支持获取更详细的错误信息。

回到顶部