uni-app uni.chooseVideo拍摄视频返回参数name后缀错误为jpg
uni-app uni.chooseVideo拍摄视频返回参数name后缀错误为jpg
使用的是中兴天机A41 Ultra 5G手机 型号ZTE A2023H
2 回复
这个问题直接导致视频无法上传
在使用 uni.chooseVideo
方法拍摄视频时,返回的文件名后缀错误为 .jpg
而不是 .mp4
或其他视频格式的情况,可能是由于某些特定环境或平台下的 bug 导致的。以下是一些可能的解决方案和排查步骤:
1. 检查平台和版本
首先,确认你使用的 uni-app
版本和目标平台(如微信小程序、H5、App等)。某些平台或版本可能存在已知的 bug,建议更新到最新的 uni-app
版本,并检查是否有相关的修复。
2. 手动修正文件后缀
如果返回的文件名后缀错误,可以在代码中手动修正。例如:
uni.chooseVideo({
sourceType: ['camera'],
success(res) {
let tempFilePath = res.tempFilePath;
if (tempFilePath.endsWith('.jpg')) {
tempFilePath = tempFilePath.replace('.jpg', '.mp4');
}
console.log('视频临时路径:', tempFilePath);
// 处理视频文件
},
fail(err) {
console.error('选择视频失败:', err);
}
});
3. 使用 uni.getFileInfo
获取文件信息
你可以使用 uni.getFileInfo
方法获取文件的详细信息,包括文件的 MIME 类型,从而判断文件的真实类型并修正后缀。
uni.chooseVideo({
sourceType: ['camera'],
success(res) {
let tempFilePath = res.tempFilePath;
uni.getFileInfo({
filePath: tempFilePath,
success(fileInfo) {
console.log('文件信息:', fileInfo);
if (fileInfo.mimeType.includes('video')) {
// 确保文件后缀正确
if (!tempFilePath.endsWith('.mp4')) {
tempFilePath = tempFilePath.replace('.jpg', '.mp4');
}
}
console.log('视频临时路径:', tempFilePath);
// 处理视频文件
},
fail(err) {
console.error('获取文件信息失败:', err);
}
});
},
fail(err) {
console.error('选择视频失败:', err);
}
});