1***@163.com
1***@163.com
  • 发布:2026-03-13 13:24
  • 更新:2026-03-13 13:25
  • 阅读:71

【报Bug】华为nova 13,点击上传图片以后返回的失败,uni.uploadFile 返回的statusCode为400

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10.0.8.100

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: Android

手机系统版本号: Android 14

手机厂商: 华为

手机机型: nova 13

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

return new Promise((resolve, reject) => {
uni.uploadFile({
url: apiPath, // 仅为示例,非真实的接口地址
filePath: compressUrl,
name: "file",
timeout:1000*30, // 单位ms
formData: {
...data
},
success: (res) => {
console.log('上传结果', res)
if (res.statusCode != 200) {
uni.hideLoading()
tool.errCodeOption(res)
reject()
return
} else {
// uni.hideLoading()
var data = JSON.parse(res.data)
console.log('data', data)
if (data.code != 0) {
tool.toastTip(data.message_description)
reject()
return
}
resolve(res.data);
}

            },  
            fail(e) {  
                uni.hideLoading()  
                tool.toastTip('上传失败')                     
                console.log('e', e)  
                reject(e)  
            }  

        });  
    });

操作步骤:

华为nova 13,点击上传图片以后返回的失败,statusCode为400,这个情况还不全是失败,有的时候还会成功,只是用户要反复尝试多次,偶尔一次能成功

预期结果:

该机型能顺利进行上传

实际结果:

该机型大部分尝试都是失败,偶尔一次为成功

bug描述:

2026-03-13 13:24 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

作为DCloud官方人员,对该bug反馈进行如下评审:

反馈内容完整性评估

基本信息:反馈中包含了必要的分类信息(HBuilderX 4.87、Vue2、Android 14、华为nova 13),这部分比较完整。

代码示例问题:提供的代码片段无法直接运行。缺少关键变量定义(apiPathcompressUrldatatool等),且存在未定义的依赖。建议补充完整的、可独立运行的测试工程,移除业务相关依赖,使用模拟接口演示问题。

复现步骤缺陷:描述过于笼统。仅说明"点击上传图片后返回失败,偶尔成功",缺乏关键细节:

  • 复现频率(十次中几次失败?)
  • 网络环境(WiFi/4G/5G?)
  • 文件特征(图片大小、格式、压缩前后对比)
  • 服务器端响应详情(400错误的具体返回体是什么?)
  • 是否仅在华为nova 13上出现,其他华为机型或Android 14设备是否正常?

问题定位关键缺失:statusCode 400为"Bad Request",通常表示客户端请求格式错误或服务器拒绝处理。需要明确:

  1. 该400是服务器返回的还是客户端本地拦截的?
  2. 失败时请求头、请求体是否与成功时完全一致?
  3. 服务器端日志是否有接收记录?

技术评审意见

根据知识库中关于uni.uploadFile的文档,Android App平台支持timeout参数(HBuilderX 2.9.9+),代码中设置30秒超时符合规范。

可能的排查方向

  1. 华为系统特性:nova 13可能存在特定的权限管理或后台限制,导致偶发的网络请求被系统拦截
  2. 压缩后文件状态:代码中使用了compressUrl,需确认图片压缩过程是否偶尔产生异常文件句柄
  3. 请求头冲突:部分华为机型对特定Header敏感,建议测试不设置自定义Header时是否复现

改进建议

请补充以下内容以便官方复现:

  1. 最小复现工程:上传一个仅包含选择图片+上传功能的测试项目(含测试服务器接口地址或可公开访问的mock接口)
  2. 完整日志:开启HBuilderX的"运行日志"面板,捕获失败时的完整请求/响应数据(脱敏后)
  3. 对比测试:在同一网络环境下,使用其他品牌Android 14手机、华为其他机型、以及H5/微信小程序端上传相同图片的测试结果
  4. 服务器端日志:提供400错误发生时服务器是否接收到请求、返回的具体错误信息

当前反馈状态:暂无法确认是否为框架bug,需要更多信息判断是华为系统级限制、服务器配置问题还是uni-app框架在特定机型上的兼容性问题。建议先在ask.dcloud.net.cn社区发帖并提供复现demo,如确认为框架问题将转至ISSUE系统跟踪。

内容为 AI 生成,仅供参考

要回复问题请先登录注册