let a = uni.uploadFile({
url: uploadUrl,
filePath: fileUrl,
name: 'file',
header: {
'Authorization': 'Basic bW9iaWGVfY3JtX3NlY3JldA==',
'Blade-Auth': 'bearer ' + _this.accessToken
},
formData: {
user: 'test'
},
fileType: 'image',
success: (res) => {
console.log('uploadFile res,',res);
uni.showToast({
title: "上传成功:" + JSON.stringify(res)
})
let result = JSON.parse(res.data);
setTimeout(() => {
resolve(result)
}, 500)
},
error: (error) => {
uni.showToast({
title: "上传成功:" + JSON.stringify(error)
})
reject(error)
console.log('upload error,',error)
},
complete: (comRes) => {
console.log(comRes);
uni.showToast({
title: "上传完成:" + JSON.stringify(comRes)
})
}
}); - 发布:2025-10-30 18:37
- 更新:2025-10-31 12:08
- 阅读:150
【报Bug】鸿蒙系统调用uploadFile报错Request failed with status code 403
产品分类: uniapp/小程序/钉钉
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows 10 企业版 LTSC
HBuilderX类型: 正式
HBuilderX版本号: 4.76
第三方开发者工具版本号: 支付宝小程序开发者工具Version 3.9.56
基础库版本号: vue2
项目创建方式: HBuilderX
示例代码:
操作步骤:
在鸿蒙系统环境调用uni.uploadFile()
在鸿蒙系统环境调用uni.uploadFile()
预期结果:
正常上传
正常上传
实际结果:
请求失败
请求失败
bug描述:
在安卓和IOS环境下可以正常调用uni.uploadFile(),运行在鸿蒙系统中会报错如图:
403 是服务器报错,检查参数,和后端对一下请求
-
-
-
-
moyoe (作者)
回复 DCloud_UNI_LXH: 看下我下面发的报文 ,在调用uploadFile接口时我传的header中的“Authorization”和“Blade-Auth”都是首字母大写的,在模拟器环境和安卓环境发送时,服务端收到的也是大写,但是鸿蒙环境发送时这两个都被转成 小写了。麻烦看下uploadFile在鸿蒙适配的时候是不是做了什么处理?
2025-10-31 12:11
-
moyoe (作者) - shenma
小程序开发工具模拟器中发送的报文:
================ Request Start ================
===> POST: /api/resource/oss/endpoint/putfile Parameters: {"file":"apml663a8e10712c548c607c0ef52d1fe5c6.jpg"}
===Headers=== Authorization: Basic b--
===Headers=== Blade-Auth: bearer eydenTpmaDmZ9tKF013dbw
===Headers=== content-length: 15245
===Headers=== referer: https://5000000005085895.eco.dingtalkapps.com/index.html
===Headers=== Connection: close
===Headers=== host: 192.168.170.6:38105
===Headers=== content-type: multipart/form-data; boundary=--------------------------281868723852162749707588
===Headers=== user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 ChannelId(0) LyraVM Nebula AlipayDefined(nt:WIFI,ws:360|0|3.0) AliApp(DingTalk/7.0.0) DingTalkIDE/7.0.0 Ariver/1.0.6 AlipayIDE language/zh-CN
================ Request End ================
安卓环境下发送的报文:
================ Request Start ================
===> POST: /api/resource/oss/endpoint/putfile Parameters: {"file":"odvzmlzeejzhazipsgbi95zs0[B@1376296.jpg"}
===Headers=== Authorization: Basic b--
===Headers=== Blade-Auth: bearer eydenTpmaDmZ9tKF013dbw
===Headers=== connection: Keep-Alive
===Headers=== Host: 192.168.170.6:38105
===Headers=== Accept-Encoding: gzip
===Headers=== Content-Length: 90821
===Headers=== accept: /
===Headers=== user-agent: MiniFileUploaderAliApp(DingTalk/8.1.0) com.alibaba.android.rimet/50215315 Channel/10003993 language/zh-CN abi/64 xpn/vivo
===Headers=== Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryInjektToAweSSome
================ Request End ================
鸿蒙环境下发送的报文
================ Request Start ================
===> POST: /api/resource/oss/endpoint/putfile Parameters: {"file":"d8cffd5a677e0024849f95c65b461a3c.jpg"}
===Headers=== authorization: Basic b--
===Headers=== blade-auth: bearer eydenTpmaDmZ9tKF013dbw
===Headers=== User-Agent: libcurl-agent/1.0
===Headers=== Host: 192.168.170.6:38105
===Headers=== Accept-Encoding: deflate, gzip, br
===Headers=== Content-Length: 595724
===Headers=== accept: application/json, text/plain, /
===Headers=== Content-Type: multipart/form-data; boundary=------------------------1l0afHSfbaZbfG5yGY4IbM
================ Request End ================