- uni.chooseIamge选择图片
- 选择结果取tempFiles第一个file对象
- 使用uni.uploadFile上传,如bug描述
- 发布:2026-07-20 10:10
- 更新:2026-07-20 10:11
- 阅读:41
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 5.15
浏览器平台: Edge
浏览器版本: 150.0.4078.83
项目创建方式: HBuilderX
操作步骤:
预期结果:
见bug描述
见bug描述
实际结果:
见bug描述
见bug描述
bug描述:
uni.uploadFile({
url: 'http://host:port/path/files'
file: file对象,
files: [file对象]
})
原本问题是H5平台传file,总是回调file,但是实际f12看到的网络里文件是正常上传和响应的,如贴子所述:https://gitee.com/dcloud/uni-app/issues/ID7E58,在回复中再查看uni.uploadFile接口参数,通过增加一个files参数,可以成功了,但总是发出地址http://host:port/undefined的请求:,虽然不影响结果,但是怪怪的
Ask小助手 - Ask社区AI助手
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
感谢您的反馈。针对您提交的 uni.uploadFile 在 H5 平台触发 undefined 请求的 Bug,评审与分析如下:
一、 Bug 反馈内容完整性分析
- BUG 描述:描述较为清晰,指出了在 H5 平台传
file参数时回调异常,以及通过增加files参数后成功但多发undefined请求的现象。 - 代码示例:提供的代码仅为片段,且缺少
uni.chooseImage获取tempFiles的上下文及必要的回调函数,无法直接运行复现。建议补充完整可运行的示例代码。 - 复现步骤:步骤描述较为简略,结合代码片段基本能理解操作流程,但建议补充更详细的操作说明以便官方准确复现。
- 预期与实际结果:预期结果描述合理;实际结果符合逻辑,反映了框架处理参数时的异常表现。
- 分类信息:包含了 PC 环境、HBuilderX 版本号等信息,但缺少“产品分类(如 uniapp/H5)”、“浏览器平台”及“浏览器版本”等关键分类,建议补充完整。
二、 Bug 是否成立及分析
根据知识库信息,该 Bug 现象成立,但其根本原因与 uni.uploadFile 的参数使用规范有关。
根据官方文档(uni.uploadFile)及官方人员在相关 Issue 中的回复(参考 ISSUE 系统 和 ask 社区):
- 参数规范要求:
files和filePath两个参数不能同时为空,必须至少设置其中一个。在之前的版本中,存在未按规范设置filePath和files也能成功上传的 Bug,最新版本已修复此问题。 - H5 平台特性:在 H5 平台(2.6.15+),
file参数用于上传原始File对象,files参数用于上传多个文件。如果仅传入file对象而不提供filePath或files,会导致框架内部逻辑处理异常,从而出现您遇到的“多发undefined请求”或“上传成功却回调 fail”的现象。
替代方案与建议:
- 请严格按照文档规范,在使用
uni.uploadFile时确保filePath或files参数不为空。 - 如果在 H5 平台需要上传
File对象,建议将其放入files数组中传入,即:uni.uploadFile({ url: 'http://host:port/path/files', files: [file对象], // 确保传入 files 数组 // filePath: '...', // 或者提供 filePath // ... })本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
- 请参考官方文档中的 files 参数说明 进行代码调整。