v.pics.forEach((u, i) => { if (u.split('/')[0] == 'cloud:') {} else { picCursor.push(i) tmpPromise.push(wx.cloud.uploadFile({ cloudPath: 'usersproducts/' + upID + Date.now() + (i + '.png'), filePath: u })) } })怎么在这段代码中增加一个图片压缩功能,压缩图片后在进行上传
时间: 2024-02-13 13:07:54 浏览: 38
你可以使用第三方的图片压缩库来实现图片压缩功能,例如使用`wx.compressImage()`方法。在原有代码的基础上,可以将`wx.cloud.uploadFile()`方法的`filePath`参数替换为压缩后的图片地址,示例代码如下:
```
const tmpFilePromises = []
v.pics.forEach((u, i) => {
if (u.split('/')[0] == 'cloud:') {
// 图片已在云存储空间中,无需再次上传
} else {
picCursor.push(i)
// 压缩图片并上传
tmpFilePromises.push(wx.compressImage({
src: u,
quality: 80, // 压缩质量
}).then(res => {
return wx.cloud.uploadFile({
cloudPath: 'usersproducts/' + upID + Date.now() + (i + '.png'),
filePath: res.tempFilePath, // 压缩后的图片地址
})
}))
}
})
// 等待所有压缩上传完成
Promise.all(tmpFilePromises).then(res => {
console.log('all uploaded', res)
}).catch(error => {
console.error('upload error', error)
})
```
在上述代码中,我们将`wx.compressImage()`方法应用于每个需要上传的图片,生成一个Promise对象并存储在tmpFilePromises数组中。在Promise.all()方法中,等待所有Promise对象的resolve或reject状态完成后,进行上传成功或失败的处理。注意,使用`wx.compressImage()`方法会生成一个新的压缩后的临时图片文件,需要在上传成功后将其删除。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
<script type="text/javascript"> var httpRequest = new XMLHttpRequest(); httpRequest.open('GET','http://1.14.137.211:8888/tealist',true); httpRequest.send(); httpRequest.onreadystatechange = function(){ if(httpRequest.readyState == 4 && httpRequest.status ==200 ){ var data = httpRequest.responseText; var data = JSON.parse(data); console.log(data); function test1(){ $(".increment").onclick = function(){ let n = $(this).siblings(".itxt").val(); console.log(n); n++; $(this).siblings(".itxt").val(n); } return; } function test2(){ $(".decrement").onclick = function(){ let n = $(this).siblings(".itxt").val(); console.log(n); if (n == 0) { return false; } n--; $(this).siblings(".itxt").val(n); } return; } data.forEach(element => { let html = ${element.name}${element.price}¥ - <input type="text" class="itxt" value="0"> + $("#pics").append(html); //document.querySelector("#pics").innerHTML = html; }); } } </script>
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)