Jaseem Abbas
Jaseem Abbas

Reputation: 5230

How to convert file to buffer in node.js?

I am writing a sails.js app. I am writing an API to accept a file and encrypt it.

var file = req.body('myFile');
var fileBuffer = convertToBuffer(file);

How do I convert a file to buffer?

Upvotes: 23

Views: 81991

Answers (2)

jrnxf
jrnxf

Reputation: 944

In 2024 this is what I'm doing – which makes typescript happy.

First create an ArrayBuffer from the file, then pass the ArrayBuffer to Buffer.from like so

const arrayBuffer = await file.arrayBuffer()
const buffer = Buffer.from(arrayBuffer)

Upvotes: 8

tkone
tkone

Reputation: 22728

That looks like you've got a string which represents the body of your file.

You just have to make a new buffer with it.

var fileBuffer = Buffer.from(file)

If your encoding is NOT utf8 you can specify an alternate encoding as a second optional argument.

var fileBuffer = Buffer.from(file, 'base64')

If the file is actually on disk, this is even easier, since, by default, the fs.readFile operation returns a buffer.

fs.readFile(file, function(err, buffer){})

If you're in a real old version of node Buffer.from doesn't exist and you have to use a very memory-unsafe new constructor. Please consider upgrading your node instance to support Buffer.from

Upvotes: 49

Related Questions