uni-app hbuilderx更新新版后h5上传视频报错,之前可以的,现在切换之前版本也是可以的

uni-app hbuilderx更新新版后h5上传视频报错,之前可以的,现在切换之前版本也是可以的

操作步骤:

  • 看上面描述就行

预期结果:

  • 正常使用

实际结果:

  • 不能正常使用

bug描述:

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

图片和代码截图

Image 1 Image 2 Image 3

项目信息 详细信息
产品分类 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

8 回复

是的,我也遇到了同样的问题。

更多关于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的调用上。

分析可能的原因:

  1. 文件参数验证加强:更新日志提到修复了不传file字段报错的问题,可能新版对文件参数的验证逻辑发生了变化,导致原本可用的文件对象现在无法通过验证。

  2. FormData处理变更:新版可能调整了FormData的构建方式,特别是对文件类型的处理。你的代码中使用了file: filePath,可能需要调整为更明确的文件对象。

  3. MIME类型识别:新版可能对视频文件的MIME类型识别更加严格,需要确保文件类型正确识别。

建议的解决方案:

检查上传代码,确保file参数传递的是有效的File对象而非路径字符串。可以尝试:

// 确保获取到的是File对象
const file = e.file ? e.file : {name: filePath, path: filePath}
回到顶部