问题描述
我首先用手机拍照,然后用canvas打上水印,将保存后的图片链接保存在一个数组。打开真机调试,图片数组forEach循环,在循环中转成base64然后上传。发现有时候,能全部上传成功,有时候一个都不成功然后断开调试
代码片段
function postTask(){
if (uploaded === len) {
param.mrUrl = imgPath.join(';')
common.postRequest(url, param, ()=>{},
addsuccess, that.onFailed);
}
}
let failImg = 0
imgList.forEach((e, i) => {
if (i === 0) {
wx.showLoading({
title: '正在上传',
})
}
// console.log(1)
wx.getFileSystemManager().readFile({
filePath: e,
encoding: 'base64',
success(res) {
// console.log(2)
let stream = res.data
// console.log(stream.length)
let param2 = {}
param2.stream = stream
param2.fileName = e.slice(11)
param2.type = 3
common.postRequest(postImgUrl, param2, () => {}, (res) => {
// wx.hideLoading();
if (res.StatusCode === 0) {
uploaded++
imgPath.push(res.Data)
// console.log(imgPath)
// 所有图片上传完成后,开始上传任务数据
postTask()
} else {
uploaded++
wx.showToast({
title: '图片上传失败',
})
// 所有图片上传完成后,开始上传任务数据
postTask()
console.log(res.Msg)
}
}, () => {
uploaded++
// 所有图片上传完成后,开始上传任务数据
postTask()
});
},
fail(err){
failImg++
console.log(failImg+'张图片上传失败')
}
})
})