uni-app hbuilderx更新新版后h5上传视频报错,之前可以的,现在切换之前版本也是可以的
uni-app hbuilderx更新新版后h5上传视频报错,之前可以的,现在切换之前版本也是可以的
操作步骤:
- 看上面描述就行
预期结果:
- 正常使用
实际结果:
- 不能正常使用
bug描述:
更新hbuilderx 4.84后运行之前的项目,此项目一直在维护更新,功能一直正常使用,更新新版后运行h5发现uploadFile上传视频出了问题,打包后的h5也不行,报错如图; 下面我放出图片和视频上传部分代码截图; 然后我看了下官方更新文档,此次版本更新有涉及到uploadFile功能的更新,虽然列的里面写的是:Android平台、iOS平台 修复 API uni.uploadFile 不传 file 字段报错 另一个更新的useragent的问题,其他关于这块我没看到,所以怀疑就是上面那里改动导致的问题;目前我已通过hbuilderx自带的功能:帮助->切换上一版本,回到了更新前的版本,然后运行功能是正常的
图片和代码截图

| 项目信息 | 详细信息 |
|---|---|
| 产品分类 | uniapp/H5 |
| PC开发环境 | Windows |
| PC开发环境版本 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 4.84 |
| 浏览器平台 | Chrome |
| 浏览器版本 | 版本 141.0.7390.108(正式版本) (64 位) |
| 项目创建方式 | HBuilderX |
更多关于uni-app hbuilderx更新新版后h5上传视频报错,之前可以的,现在切换之前版本也是可以的的实战教程也可以访问 https://www.itying.com/category-93-b0.html
是的,我也遇到了同样的问题。
更多关于uni-app hbuilderx更新新版后h5上传视频报错,之前可以的,现在切换之前版本也是可以的的实战教程也可以访问 https://www.itying.com/category-93-b0.html
等等看官方修复吧, 我看了更新文档是改动了这一块,但是文档里写的是安卓和ios,但是肯定是在一块的,估计改出的问题,我现在先切回之前版本先用吧
是官方修复了之前的缺失,可以看下底下的回答的,我这可以了
H5 写上 filePath 试试有没有问题,filePath 和 files 这两个参数必须写一个,参考官方文档 https://uniapp.dcloud.net.cn/api/request/network-file.html#uploadfile
设置了filePath是选择的原视频路径可以了;我问下哈,这里原本传的是文件形式,然后用h5的方法操作切片上传,这里的filePath给tempFilePath,选定视频的临时文件路径,相当于是整段视频的路径,会有问题不;然后再问下哈,这里之前是可以的,这版就不行了,是因为这块逻辑之前设计就是要强制二选一的,只是写的有bug导致之前情况可以正常使用的嘛
我看到这个版本有个这个更新,估计是之前有bug,现在修复了,原本传file,不传filePath或files也是可以的,新版应该是修复了
是的,之前是有bug,新版本修复了
根据你提供的信息,这确实是HBuilderX 4.84版本更新导致的兼容性问题。从错误截图和代码来看,问题出现在uni.uploadFile API的调用上。
分析可能的原因:
-
文件参数验证加强:更新日志提到修复了不传file字段报错的问题,可能新版对文件参数的验证逻辑发生了变化,导致原本可用的文件对象现在无法通过验证。
-
FormData处理变更:新版可能调整了FormData的构建方式,特别是对文件类型的处理。你的代码中使用了
file: filePath,可能需要调整为更明确的文件对象。 -
MIME类型识别:新版可能对视频文件的MIME类型识别更加严格,需要确保文件类型正确识别。
建议的解决方案:
检查上传代码,确保file参数传递的是有效的File对象而非路径字符串。可以尝试:
// 确保获取到的是File对象
const file = e.file ? e.file : {name: filePath, path: filePath}

