Skip to content
Advertisement

Can I append an array to ‘formdata’ in javascript?

I’m using FormData to upload files. I also want to send an array of other data.

When I send just the image, it works fine. When I append some text to the formdata, it works fine. When I try to attach the ‘tags’ array below, everything else works fine but no array is sent.

Any known issues with FormData and appending arrays?

Instantiate formData:

formdata = new FormData();

The array I create. Console.log shows everything working fine.

JavaScript

How I send it:

JavaScript

Advertisement

Answer

How about this?

JavaScript

… and, correspondingly, using json_decode on server to deparse it. See, the second value of FormData.append can be…

a Blob, File, or a string, if neither, the value is converted to a string

The way I see it, your tags array contains objects (@Musa is right, btw; making this_tag an Array, then assigning string properties to it makes no sense; use plain object instead), so native conversion (with toString()) won’t be enough. JSON’ing should get the info through, though.

As a sidenote, I’d rewrite the property assigning block just into this:

JavaScript
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement