JS formData.同步添加多个图片 图片需要转换
时间: 2024-09-30 10:11:59 浏览: 32
在JavaScript中,如果你想要同步地向FormData对象添加多个图片,并确保图片数据已经转换为Base64格式,你可以按照以下步骤操作:
1. 首先,你需要获取每个图片元素(如`<img>`标签),然后读取它们的二进制数据。可以使用`FileReader` API来完成这个任务:
```javascript
let images = document.querySelectorAll('img'); // 获取所有图片
images.forEach(img => {
let reader = new FileReader();
reader.readAsDataURL(img.files[0]); // 如果是通过file input选取的图片
reader.onload = function(e) {
let base64Data = e.target.result;
let formDataItem = new FormData(); // 创建新的FormData项
formDataItem.append('image', base64Data); // 添加到FormData中,键通常是你需要提交的名称
};
});
```
2. 当所有的图片都读取完毕并转换为Base64后,你可以将它们依次加入到同一个FormData对象中。
请注意,由于浏览器的安全限制,同步读取文件是有限制的,如果图片数量较多,可能会有延迟。为了实时添加,你也可以考虑使用Promise.all()来异步处理。
阅读全文