uni-app uni.chooseVideo默认压缩后返回文件路径缺少“file://”,未做以前版本兼容,导致uploadVideo路径上传失败
uni-app uni.chooseVideo默认压缩后返回文件路径缺少“file://”,未做以前版本兼容,导致uploadVideo路径上传失败
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | Windows10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.1.11
手机系统:Android
手机系统版本号:Android 11
手机厂商:华为
手机机型:荣耀v30
页面类型:vue
打包方式:云端
操作步骤:
uni.chooseVideo默认压缩后返回文件路径缺少“file://”,没有做以前版本的兼容,导致uploadVideo使用压缩路径上传失败。
预期结果:
uni.chooseVideo默认压缩后返回文件路径能做兼容
实际结果:
uni.chooseVideo默认压缩后返回文件路径缺少“file://”,没有做以前版本的兼容,导致uploadVideo使用压缩路径上传失败。
bug描述:
uni.chooseVideo默认压缩后返回文件路径缺少“file://”,没有做以前版本的兼容,导致uploadVideo使用压缩路径上传失败。在官方api文档里也没更新compressed支持app端
更多关于uni-app uni.chooseVideo默认压缩后返回文件路径缺少“file://”,未做以前版本兼容,导致uploadVideo路径上传失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app uni.chooseVideo默认压缩后返回文件路径缺少“file://”,未做以前版本兼容,导致uploadVideo路径上传失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的兼容性问题。在HBuilderX 3.1.11版本中,uni.chooseVideo压缩后返回的文件路径确实缺少"file://"前缀,导致uni.uploadFile无法正确识别文件路径。
临时解决方案:
- 手动添加"file://"前缀:
uni.chooseVideo({
compressed: true,
success: (res) => {
let tempFilePath = res.tempFilePath
if(!tempFilePath.startsWith('file://')) {
tempFilePath = 'file://' + tempFilePath
}
// 使用处理后的路径进行上传
uni.uploadFile({
filePath: tempFilePath,
// ...其他参数
})
}
})
- 或者使用plus.io.convertLocalFileSystemURL方法转换路径:
if(plus.os.name === 'Android') {
tempFilePath = plus.io.convertLocalFileSystemURL(tempFilePath)
}

