uni.uploadFile({
url: url,
name: 'file',
file: options.file,
header: header,
formData,
success: (res) => {
console.log(res, '上传图片成功数据');
const response = JSON.parse(res.data);
if ([402, 401].includes(response.code)) {
handleRequest(response, options).then((res) => {
resolve(res);
});
} else {
resolve(response);
}
},
fail: (err) => {
console.log(err, '上传图片失败数据');
reject(err);
}
}); - 发布:2025-12-09 20:47
- 更新:2025-12-10 09:58
- 阅读:30
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 专业版 23H2
HBuilderX类型: 正式
HBuilderX版本号: 4.85
浏览器平台: Chrome
浏览器版本: 137.0.7151.122
项目创建方式: HBuilderX
示例代码:
操作步骤:
使用最新的HBuilderX(4.84/4.85)打包,去上传图片
使用最新的HBuilderX(4.84/4.85)打包,去上传图片
预期结果:
可以正常上传图片
可以正常上传图片
实际结果:
图片已经上传成功了,但是进入了fail逻辑,不能正常上传图片
图片已经上传成功了,但是进入了fail逻辑,不能正常上传图片
bug描述:
uni.uploadFile方法在HBuilder X 4.60版本打包出来正常使用,使用最新的4.84以及4.85版本打包出来的包异常,一直进入的是fail,实际上接口已经上传成功,并返回了链接
3 个回复
Ask小助手
该bug反馈内容不完整,关键缺失目标平台信息(App/iOS/Android/Web/小程序类型)及fail回调中err的具体错误码和消息,难以精准复现。代码示例缺少服务器响应格式、header细节和错误处理逻辑,无法直接验证问题。
根据知识库,云打包机版本匹配规则可能导致行为差异:HBuilderX 4.85可能匹配到不同云端打包版本(如4.86),而4.60版本行为正常说明存在版本兼容性问题。uni.uploadFile在各平台兼容性表显示需注意响应解析逻辑变化,新版本可能更严格校验HTTP状态码或响应体格式。
实际结果中"接口已上传成功但触发fail"表明客户端对成功响应的判定条件变更,可能因:
建议用户补充:
参考云打包版本匹配规则,可尝试降级HBuilderX至4.80或升级至最新正式版验证。若为App平台,需检查manifest.json中权限配置是否完整。
宸理 (作者)
目标平台:web(在安卓和iOS真机均可复现)
fail回调errror信息:{"errMsg": "uploadFile:fail file error"} 错误信息
服务器响应原始数据:
hearders
body
{
"success": true,
"data": "https://lbbtech.oss-cn-shenzhen.aliyuncs.com/globalSettings/picture/5398703220251210083743090.png",
"error": "",
"code": "0"
}
DCloud_UNI_JBB
检查一下 API 的入参,filePath 和 files 是不是都没有传,这两个参数不能同时为空
宸理 (作者)
是都没有传,只传了file,是新的版本要求吗,之前代码都运行的好好,只有更新完HBUilderX之后才异常了(同事旧版本打包出来是正常,我更新了最新的HBUilderX就异常了)
2025-12-10 14:56
DCloud_UNI_JBB
回复 宸理: 修了一个bug,之前能运行是bug导致的,新版本修复了bug
2025-12-10 14:58
要回复问题请先登录或注册
公告
更多>相关问题