I am moving one of my scenarios from make.com to n8n. Basically I have to download a file from one platform via HTTP Get request and then upload it to another platform with HTTP Post request, but the file has to be in JSON body. I have managed to do it in make.com where I just mapped “data” field (image 1), where data is passed as binary
When I download a file with GET request I can see the PDF, but when I try to upload it with POST request I only get metadata from file and no binary data.
Does anyone know how to send binary data in JSON?
Hi @anze.gracar, welcome to the community!
Sending binary data directly inside JSON would require some form of encoding. I am not familiar with make, but I suspect they might use base64 for this purpose (but it’s worth double-checking what exactly your destination API expects).
n8n would not do this automatically, but you can still generate a base64 string based on a file like so:
I am using a Function Item node which can run JS code to build the base64-encoded string for my example file which I am then sending to webhook.site together with a simple human-readable string.
This is the data arriving on the upload server:
Hope this helps!
ooh, thanks. I works I tried converting it to base64 with Move binary data, but it did not work. It works with your code
Glad to hear, thanks so much for confirming!
This three liner is pretty much vanilla JS/Node.js btw, the only exception is the getBinaryDataBuffer method explained here in case you want to dive deeper into what’s happening here.