Explorar o código

@uppy/xhr-upload: add support for arrays in metadata (#4431)

Currently passing an array of `File` objects renders as:

```
field_from_form_for_files[]: [object File],[object File],[object File]
``` 

and it breaks default form behaviour, with this fix it works properly, like

```
field_from_form_for_files[]: (binary)
field_from_form_for_files[]: (binary)
field_from_form_for_files[]: (binary)
```
Vasiliy Matyushin hai 1 ano
pai
achega
2b855ce1a7
Modificáronse 1 ficheiros con 7 adicións e 1 borrados
  1. 7 1
      packages/@uppy/xhr-upload/src/index.js

+ 7 - 1
packages/@uppy/xhr-upload/src/index.js

@@ -171,7 +171,13 @@ export default class XHRUpload extends BasePlugin {
       : Object.keys(meta) // Send along all fields by default.
 
     allowedMetaFields.forEach((item) => {
-      formData.append(item, meta[item])
+      if (Array.isArray(meta[item])) {
+        // In this case we don't transform `item` to add brackets, it's up to
+        // the user to add the brackets so it won't be overridden.
+        meta[item].forEach(subItem => formData.append(item, subItem))
+      } else {
+        formData.append(item, meta[item])
+      }
     })
   }