[英]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.