之前我9月份的时候还是可以正常走success方法的。现在就不行了
- 发布:2025-11-18 19:12
- 更新:2025-11-18 19:41
- 阅读:16
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 19045.2193
HBuilderX类型: 正式
HBuilderX版本号: 4.85
浏览器平台: Chrome
浏览器版本: 版本 142.0.7444.163(正式版本) (64 位)
项目创建方式: HBuilderX
App下载地址或H5⽹址: https://h5.langup.cn/pages/AI/file-picker?callback=uploadCloud
操作步骤:
预期结果:
希望可以204code走success方法
希望可以204code走success方法
实际结果:
204code走fail方法
204code走fail方法
bug描述:
statusCode不应该为200+都算成功吗?
const uploadTask = uni.uploadFile({
url: rootUrl,
// H5: 传 file 字段(File 对象),不要用 filePath
file: this.selectedFile.file,
name: 'file',
formData,
success: (res) => {
if (res.statusCode === 204 || res.statusCode === 200) {
this.$refs.loadingPop && this.$refs.loadingPop.overMove(1)
this.uploading = false
uni.showToast({ title: '上传成功', icon: 'success', duration: 1200 })
// 回传给小程序
const payload = {
type: 'fileUploaded',
file: {
url: `${that.$UPLOAD_BASE}/${encodeURI(objectKey)}`,
name: baseName,
size: this.selectedFile.size,
type: this.selectedFile.type,
duration: this.selectedFile.duration
}
}
try {
if (jssdk && jssdk.miniProgram && jssdk.miniProgram.postMessage) {
jssdk.miniProgram.postMessage(payload)
}
} catch (e) {}
// 兜底返回上页
setTimeout(() => {
try { jssdk && jssdk.miniProgram && jssdk.miniProgram.navigateBack && jssdk.miniProgram.navigateBack() } catch(_) {}
try { uni.navigateBack() } catch(_) {}
try { history.back() } catch(_) {}
}, 300)
} else {
this.$refs.loadingPop && this.$refs.loadingPop.overMove(2)
this.uploading = false
uni.showToast({ title: '上传失败:' + res.statusCode, icon: 'none' })
}
},
fail: (err) => {
this.$refs.loadingPop && this.$refs.loadingPop.overMove(2)
this.uploading = false
uni.showToast({ title: '上传失败', icon: 'none' })
}
})
uploadTask.onProgressUpdate((res) => {
this.$refs.loadingPop && this.$refs.loadingPop.updateProgress(res.progress)
})
1 个回复
DCloud_UNI_JBB
filePath 和 files 不能同时为空,参考官方文档 https://uniapp.dcloud.net.cn/api/request/network-file.html#uploadfile