[英]How to append more than one array to formData()?
我正在使用前端的反應和后端的表達。 還有multer,它是一個處理文件輸入的第三方包。 現在我想要的是應該有一個對象數組,我可以將其附加到 formData 並通過 axios 發送它。 但是我沒有這樣做。 我寫了以下代碼:
const handleSubmit = (id, e) => {
//formdata object to be created
e.preventDefault()
const formData = new FormData;
for (var i = 0; i < dataFolder.length; i++) {
formData.append('body[]', dataFolder[i])
}
for (var i = 0; i < imageArray.length; i++) {
formData.append('image', imageArray[i])
}
addUpdateProduct(formData)
handleClose()
}
addUpdateProduct(formData) 是一個 redux 操作,然后調用后端路由。
此處的“DataFolder”是具有鍵值對的對象數組,例如:
dataFolder = [ {name: 'BB cream', type: 'cream'},{name: 'Neomycin', type: 'ointment'}]
'imageArray' 也是一個包含文件數組的圖像數組。 當我在我的快速控制器中對其進行控制台時,我得到以下輸出:
文件在 files 數組中正確上傳,但 dataFolder 未按預期方式顯示。 任何解決方案?
參見append的描述:
字段的值。 這可以是 USVString 或 Blob(包括子類,例如 File)。 如果沒有指定這些值,則該值將轉換為字符串。
{name: 'BB cream', type: 'cream'}
是一個對象,不是字符串或 blob。 如果將普通對象轉換為字符串,則會得到'[object Object]'
正如您在服務器接收到的數據中看到的那樣。
您可以將其編碼為 JSON 以使其成為字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.