JS formData.同步添加多个图片 图片需要wx.getLocalImgData转换
时间: 2024-09-30 14:11:59 浏览: 33
在JavaScript中,特别是处理微信环境下的图片数据时,如果你想同步地向`FormData`对象添加多个图片,你需要先通过`wx.getLocalImgData`函数获取本地图片的Base64编码,因为`FormData`通常处理的是键值对,其中键通常是字符串,而图片则是二进制数据。
以下是一个简单的示例:
```javascript
// 获取图片
var localImages = []; // 存储所有本地图片对象
for (let i = 0; i < numOfImages; i++) {
wx.getLocalImgData({
localId: 'image_' + i, // 每张图片的唯一标识
success(res) {
if (res.localIds && res.localIds[0]) { // 如果请求成功
let base64Image = res.localIds[0].base64; // 转换为Base64
localImages.push(base64Image);
// 添加到FormData
formData.append('image_' + i, base64Image, 'image_' + i); // 使用文件名作为键
}
},
fail(err) {
console.error('Failed to get image data:', err);
}
});
}
// 当所有图片都获取并添加完成后,你可以提交FormData
if (localImages.length > 0) {
// 提交formData
submitForm(formData);
}
```
注意:
1. 这段代码假设你已经有一个数组`numOfImages`表示要添加的图片数量,并且`submitForm`是你自定义的一个用于发送FormData的函数。
2. `wx.getLocalImgData`只能在微信小程序环境中使用,如果是在浏览器环境中则需要其他方式处理图片。
3.
阅读全文