# File upload and additional fields via multipart/form-data

**URL:** <https://discourse.nodered.org/t/file-upload-and-additional-fields-via-multipart-form-data/65404>\
**Category:** Share Your Projects\
**Created:** [21 July 2022 08:36 UTC](https://discourse.nodered.org/t/file-upload-and-additional-fields-via-multipart-form-data/65404 "2022-07-21T08:36:05Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![3dimensional](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/3dimensional/32/64992_2.png) [@3dimensional](https://discourse.nodered.org/u/3dimensional)\
**Post date:** [21 July 2022 08:36 UTC](https://discourse.nodered.org/t/file-upload-and-additional-fields-via-multipart-form-data/65404/1 "2022-07-21T08:36:05Z")

</div>

Since the original thread was closed and i was struggling for hours finding a solution so I would like to present my solution to you. Requirement: Had to upload a PDF document and send a JSON string to an API endpoint and was facing 400 Bad Request and 415 Unsupported Media Type. Since http request nodes uses nodejs form-data library to perform multipart/form-data request i came up with the options argument. These arguments allows to specify additional properties to each boundary

```auto
msg.headers = {
    "Content-Type": "multipart/form-data",
};
msg.payload = {
    "file": {
        "value": FILECONTENT,
        "options": {
            "filename": FILENAME,
            "contentType": 'application/pdf',
        }
    },
    "json":{
        "value": "{"property": "value"}",
        "options": {
            "contentType": 'application/json',
        }
    } 
}

```

Leads to (example manually created):

```auto
------WebKitFormBoundaryL1mYuhVxLFBNwBTF
Content-Disposition: form-data; name="file"; filename="FILENAME"
Content-Type: application/pdf

FILECONTENT
------WebKitFormBoundaryL1mYuhVxLFBNwBTF
Content-Disposition: form-data; name="json";
Content-Type: application/json

{"property": "value"}
------WebKitFormBoundaryL1mYuhVxLFBNwBTF--

```

Cheers

Stefan

---

<div class="post-metadata">

**Author:** ![HaroldPetersInskipp](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/haroldpetersinskipp/32/42319_2.png) [@HaroldPetersInskipp](https://discourse.nodered.org/u/HaroldPetersInskipp)\
**Post date:** [24 July 2022 14:47 UTC](https://discourse.nodered.org/t/file-upload-and-additional-fields-via-multipart-form-data/65404/2 "2022-07-24T14:47:14Z")

</div>

Thank you for this example, It helped me to learn more about HTTP requests and headers.
