PLEASE USE https://github.com/dainer88/node-red-contrib-send-form as this is a maintained fork.
This is a node-red node for posting http(s) requests containing files as multipart formData.
run npm -g install node-red-contrib-send-form
Pulled together using some of the best of parts of other node-red-contrib nodes (particularly node-red-contrib-http-request), and the best parts of stackoverflow. Currently only sends files. However, there are future plans to handle other types multipart/form-data.
Required node inputs:
- url (this is specified on the node)
- file source type:
- base64 or binary buffer
-
Data | Buffer
Needs to be passed inmsg.payload.file.data
-
Name of file field | String
Needs to be passed inmsg.payload.file.field
-
Name of file | String
Needs to be passed inmsg.payload.file.name
-
Source type | String
Can be selected within the node from a dropdown menu "type" or passed inmsg.payload.file.type
. Payload overrides the dropdown menu.Currently accepts
- base64
- binary
Can be inserted within the node or passed as part of msg.payload.formOptions.<name of key>
msg.payload.formOptions.params = 'test':
is the same as
<input type=textbox name=params value="test">
msg.payload = {
file: {
field: 'file',
data: msg.payload,
type: 'binary',
name: 'file'
},
formOptions: {
params: '',
}
}
same as:
<form method=post enctype=multipart/form-data>
<input type=textbox name=params value="">
<input type=file name=file>
</form>
Check Node-RED Menu Import -> Examples for available examples
As of december 2019, NodeRed does not yet support sending multipart form-data. This module aims to begin to close that gap.
There is always room for improvement, and new ideas are valued. Feel free to submit pull requests to make this library even better.