簡體   English   中英

如何在formData中發送多維數組

[英]How to send multi-dimensional array in formData

我必須將多個圖像發送到映射到多個鍵(變體)的服務器。 假設我有兩個變體,因此一個數組將是變體,即variant = [a,b] ,而另一個數組應包含與每個變體相對應的圖像(多個圖像),例如images = [[File, File], [File, File, File]] ,因此兩個嵌套的 arrays 按照索引鏈接到變體數組,即variant[0]具有圖像images[0] 同樣, variant[1]的圖像在images[1]中(三個圖像)。

現在,我必須將這些數據從 React.js 中的前端發送到后端,使用變體很簡單,就像這樣。

const formData = new FormData()
const variants = [a, b, c]
for (let key of variants) {
  formData.append('variant[]', key)
}

現在,如何制作多維圖像數組的formData主體? 我做過這樣的事情,感覺不對。

for (let i = 0; i < images.length; i++) {
  for (let j = 0; j < images[i].length; j++) {
    if (typeof images[i][j] !== 'object') continue
    formBody.append(`image_url[]${i}[]`, images[i][j])
  }
}

formData中發送多維的正確方法是什么?

我不知道您的圖像是哪種格式,但假設它們都可以轉換為 JSON。 我建議您執行以下操作,因為它會保持 arrays 的嵌套完好無損,而不是散布它們(如果您直接傳遞參數 ie 數組,它會這樣做)。

 formData.append("images", JSON.stringify(imagesArray))

因此,我沒有發送多維數組,而是更改了端點的主體,對於每個變體,都有一個具有該變體 ID 的鍵。 例如;

variant=[a,b]

而不是發送

images = [[File, File], [File, File, File]]

我現在正在制作一個動態密鑰並將其附加到圖像密鑰,如下所示:

images_a[] = File
images_a[] = File
images_b[] = File
images_b[] = File
images_b[] = File

原來這是更簡單的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM