我有一个对象数组,格式为:
array1: [ { name: 'A', image: File {name: "Desert.jpg", path: "C:\Users\Public\Pictures\Sample Pictures\Desert.jpg", lastModified: 1247549551658, lastModifiedDate: Tue Jul 14 2009 11:02:31 },
{ name: 'B', image: File{name: "Desert.jpg", path: "C:\Users\Public\Pictures\Sample Pictures\Tulips.jpg", lastModified: 1247549551658, lastModifiedDate: Tue Jul 14 2009 11:02:31} }, ..... ]
我正在使用以下命令将array1发送到我的后端服务器:
formData.append('array1', JSON.stringify(array1))
在后端,我收到的数组为:
let array1 = JSON.parse(req.body.array1)
但是在后端,文件为空。我怎样才能解决这个问题?? 前端在React中,后端在Node中。
答案 0 :(得分:0)
您尝试过吗?
array1.forEach(file => {
formData.append("images[]", file.image, file.image.name)
})
也取决于您的后端。它是如何接收请求的...
答案 1 :(得分:0)
您可以为数组中的每个元素创建一个fetch
,并将所有数据放入一个FormData:
const promises = array1.map(obj => {
const formData = new FormData();
Object.keys(obj).forEach(key => {
formData.append(key, obj[key]);
});
return fetch('/your-file-upload-endpoint', {
method: 'POST',
body: formData
});
}
Promise.all(promises).then(() => {
console.log('All files were uploaded');
}).catch(error => {
console.error(error);
});