你们好,微信官方
目前在一个月前我们已经断断续续提过几次问题给你们,主要都是因为wx.uploadfile使用出现报错问题导致的
我们在图片上传位置添加了实时日志,可以看出来通过uploadfile接口上传图片还没有到后台接受图片就出现了错误
具体的错误编码 600005 600003 600001
出现的情况都是偶发性的,没有任何规律
出现的机型也都不确定,大部门集中在ios 和华为的系统上
目前我们已经反馈了几次 都没有得到很好的回复和解决方案,用户客户端的日志我们也上传过几次,但是还是没有得到很好的解决办法
能否邀请技术人员拉群和我们一群联调读取数据看一下,帮助我们解决问题,我们愿意全力配合
谢谢
https://developers.weixin.qq.com/community/develop/doc/000aacb7344c5097963e0aaa056400
https://developers.weixin.qq.com/community/develop/doc/000664a276c970f7043ed1e1756000
代码片段
// 这是上传图片的方法
BFXJCTEMPuploadImage: function () {
let mustCheckVisitData = this.data.visitProcess.getModuleSaveData(visitConfig.visitProcessStep.BFXJC);
let _processData = this.data.visitProcess.getVisitProcessState(visitConfig.visitProcessStep.BFXJC);
let imgListPath = _processData['imgList'] || []
logger.info('imgListPath', imgListPath);
//已经走到了这里 这里显示的是日志是
// [10:02:39] imgListPath [{"key":"wxfile://tmp_65d9ea6f75871aab42a70fc4eb211ea8.jpg","materielCheckCd":"634123100000064128748720220705091657","imageName":"634123100000064128748720220705091657_00.jpg","upLoadFinish":"4"},{"key":"wxfile://tmp_4217c15f8a01eb1615df81f78d220589.jpg","materielCheckCd":"634123100000065128748720220705091657","imageName":"634123100000065128748720220705091657_00.jpg","upLoadFinish":"4"},{"key":"wxfile://tmp_bb1bf37c3cc89f51af5b930837c512a8.jpg","materielCheckCd":"634123100000065128748720220705091657","imageName":"634123100000065128748720220705091657_01.jpg","upLoadFinish":"4"}]
if (imgListPath && imgListPath.length > 0) {
for (let k = 0; k < imgListPath.length; k++) {
let txnKey = imgListPath[k].txnKey
let uploadStatus = imgListPath[k].upLoadFinish
let picRow = imgListPath[k].picRow
let picCol = imgListPath[k].picCol
if (visitConfig.visitProcessUploadStatus.uploaded != uploadStatus) {
let _keyId = imgListPath[k].key
const postImage = request.uploadNew(_keyId, config.api.uploadMslCompImage, {
fileTypeCd: "VISIT_MSLCOMP_IMAGE",
txnKey: txnKey,
mslCompCd: "",
picRow: picRow,
picCol: picCol
});
//请求中出现报错
postImage.then(result => {
logger.info('必分销图片上传成功。。', result);
this.updateVisitProcessStepImgState(visitConfig.visitProcessStep.BFXJC, _keyId, visitConfig.visitProcessUploadStatus.uploaded);
}).catch((mslI) => {
logger.error('必分销上传图片失败回调', mslI);
//这里的log是[10:02:39] 必分销上传图片失败回调 {"errno":600005,"errMsg":"uploadFile:fail file path invalid"}
this.updateVisitProcessStepImgState(visitConfig.visitProcessStep.BFXJC, _keyId, visitConfig.visitProcessUploadStatus.error);
});
}
}
}
},
已经封装好的上传图片代码
const uploadNew = (filePath, url, formData, hasLoading = false) => {
const token = userContext.getToken()
console.log('上传文件地址。。。', filePath);
console.log('上传formData数据。。。', formData);
return new Promise((resolve, reject) => {
// 请求是否是白名单标识
let isWhiteUrl = false;
for (let i = 0; i < whiteUrl.length; i++) {
if (url.lastIndexOf(whiteUrl[i]) >= 0) {
isWhiteUrl = true;
break;
}
}
console.log('是否白名单', isWhiteUrl);
//如果token为空则直接跳转至登录页面
if (!isWhiteUrl && !token) {
reject({});
utils.changePage(config.page.login);
return
}
if (hasLoading) {
wx.showLoading({
title: '加载中...',
mask: true,
})
}
wx.uploadFile({
filePath,
name: 'file',
url: url,
header: {
'content-type': 'multipart/form-data',
Authorization: 'Bearer ' + token
},
formData: formData || {},
success(request) {
if (request.statusCode === 200) {
const data = JSON.parse(request.data);
resolve(data);
} else {
console.error(request)
reject(request);
}
},
fail(error) {
console.log('图片上传错误日志',error);
reject(error);
},
complete: () => {
wx.hideLoading();
},
});
});
};
我的微信号 :ly957048226
诚挚邀请技术人员帮助我们一起解决,用户使用小程序每天都在出现不定时 不定人 丢失照片情况 影响很大
uploadfile不要设置content-type 容易出问题,碰到过几个了