将带有文件的对象发送到后端

Send object with files to backend

所以我有这个问题,我有一个像这样的对象:

{
   name: "",
   layers: [{
      name: "",
      traits: [{
         name: "",
         file: File
      }]
   }]
}

问题是我不能只 JSON.stringify(data) 然后做一个 formData.append() 并将它发送到后端,因为 File 无法得到 searilized。

我还看到了发送一组图像的答案,例如:

formData.append("image", file1)
formData.append("image", file2)
...

但在后端,我将无法将图像放回正确的层和正确的特征索引。

有人知道实现此目标的最佳方法是什么吗?

为每个文件指定一个唯一的名称(append() 的第三个参数可让您指定)。使用这些名称而不是文件来创建数据结构。将数据结构序列化为 JSON。将 JSON 作为参数传递到 FormData 对象中。