I'm saving an image file locally so I can ready it using `fs.createReadStream()` and append it to my `FormData` to send it to the REST api. Like this:
```
const fetch = require('node-fetch');
const Jimp = require('jimp');
const FormData = require('form-data');
// Save file locally
await Jimp.read(imagePNGURL).writeAsync(savedImagePath);
// Append it to the formdata using fs.createReadStream
const formData = new FormData();
formData.append('file', fs.createReadStream(savedImagePath));
// Send formData to api and image gets saved correctly
await fetch('TrelloUrl', { method: 'POST', body: formData })
```
Now I want to do the same thing but **without** saving the file locally but by using the image **buffer**. I've tried the following but I can't seem to make it work:
```
const fetch = require('node-fetch');
const Jimp = require('jimp');
const FormData = require('form-data');
const stream = require('stream');
// Save file to Buffer
const buffer = await Jimp.read(imagePNGURL).getBufferAsync('image/png');
// Convert buffer to stream
const bufferStream = new stream.PassThrough();
bufferStream.end(buffer);
// Try to append it to the formdata and send it to the api
const formData = new FormData();
formData.append('file', bufferStream); // Results in 400 Bad Request
formData.append('file', bufferStream.read()); // Results in empty image being uploaded
await fetch('TrelloUrl', { method: 'POST', body: formData })
---------
// Also tried to convert the buffer to stream like this:
const { Readable } = require('stream');
const bufferToStream = (buffer) => {
const stream = new Readable();
stream.push(buffer);
stream.push(null);
return stream;
};
formData.append('file', bufferToStream(buffer)); // Results in 400 Bad Request
formData.append('file', bufferToStream(buffer).read(); // Results in empty image being uploaded
```
How can I convert the `buffer` correctly to a `fs.ReadStream()` object so I can send it successfully to the api?
Or are there better ways to approach this?
All help is appreciated.
@Jamahl M-D I have never been able to make file uploads like this work, but this guy reported he was able to the other day, I haven't tried it though ymmv:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.