I have some HTML with a link:
<a href="https://example.com/get-pdf">Download PDF</a>
Where example.com is my Node-RED instance with a /get-pdf
http endpoint:
This flow then GETs the file through another http request (because the file is behind an API that needs a bearer token).
My question is: how do I return this fille so that the person who clicked the link gets the file as a normal file download in their browser?
You can set the content-type header in the HTTP response node to "application/octet-stream" to 'force' a download. If you set it to "application/pdf" I suspect Chrome (for example) might use its own reader rather than downloading it. Not tested though.
Unfortunately that didn't work. The result was this "file":
Same result with both application/octet-stream
and application/pdf
.
Is this correct programming of the reponse node?
The flow looks like this:
The request node should be set to this, right?
Don't include quotes in string fields
Still the same result without the quotes
Have you specified a file name anywhere?
If you are ok with a fixed/static file name, just add another header
name: Content-Disposition
value: attachment; filename="file.pdf"
Thanks! That worked perfectly.
Well, it would be great to be able to specify the filename.
I tried using a {{{variable}}}
as part of the filename but that didn't work.
system
Closed
20 February 2023 11:50
8
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.