簡體   English   中英

如何將多個數組附加到 formData()?

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

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