v.pics.forEach((u, i) => { if (u.split('/')[0] == 'cloud:') { } else { picCursor.push(i); wx.getFileSystemManager().getFileInfo({ filePath: u, success: function (res) { if (res.size > 200 * 1024) { wx.compressImage({ src: u, quality: 30, }).then(res => { tmpPromise.push(wx.cloud.uploadFile({ cloudPath: 'usersproducts/' + upID + Date.now() + (i + '.png'), filePath: res.tempFilePath, })) }) } else { tmpPromise.push(wx.cloud.uploadFile({ cloudPath: 'usersproducts/' + upID + Date.now() + (i + '.png'), filePath: u, })) } } }) } });这段代码存在一个问题,tmpPromise.push(wx.cloud.uploadFile({ cloudPath: 'usersproducts/' + upID + Date.now() + (i + '.png'), filePath: res.tempFilePath, }))最后得到的是本地压缩图片的地址,而不是云存储图片地址,请问怎么修复这个问题?
时间: 2024-02-14 19:02:50 浏览: 213
要修复这个问题,需要将上传到云存储的图片地址改为压缩后的临时文件地址。可以在压缩成功后,将临时文件的地址保存到一个变量中,然后在上传到云存储时使用该变量中保存的地址即可,代码如下:
```
v.pics.forEach((u, i) => {
if (u.split('/')[0] == 'cloud:') {
} else {
picCursor.push(i);
wx.getFileSystemManager().getFileInfo({
filePath: u,
success: function (res) {
if (res.size > 200 * 1024) {
wx.compressImage({
src: u,
quality: 30,
}).then(res => {
// 保存压缩后的临时文件地址
const tmpFilePath = res.tempFilePath;
tmpPromise.push(wx.cloud.uploadFile({
cloudPath: 'usersproducts/' + upID + Date.now() + (i + '.png'),
// 使用压缩后的临时文件地址上传到云存储
filePath: tmpFilePath,
}));
})
} else {
tmpPromise.push(wx.cloud.uploadFile({
cloudPath: 'usersproducts/' + upID + Date.now() + (i + '.png'),
filePath: u,
}))
}
}
})
}
});
```
阅读全文