如何在node.js中将文件转换为缓冲区?

问题描述 投票:0回答:2

我正在编写 sails.js 应用程序。我正在编写一个 API 来接受文件并对其进行加密。

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

如何将文件转换为缓冲区?

node.js sails.js
2个回答
44
投票

看起来您有一个代表文件正文的字符串。

你只需用它创建一个新缓冲区

var fileBuffer = Buffer.from(file)

如果您的编码不是

utf8
,您可以指定替代编码作为第二个可选参数。

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

如果文件实际上位于磁盘上,则这就更容易了,因为默认情况下,

fs.readFile
操作会返回一个缓冲区。

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

如果您使用的是real旧版本的节点

Buffer.from
不存在,则必须使用内存非常不安全的
new
构造函数。请考虑升级您的节点实例以支持
Buffer.from


0
投票

2024 年,这就是我正在做的事情 – 这让 Typescript 感到高兴。

首先从文件创建一个 ArrayBuffer,然后将 ArrayBuffer 传递给

Buffer.from
,如下所示

const arrayBuffer = await file.arrayBuffer()
const buffer = Buffer.from(arrayBuffer)
© www.soinside.com 2019 - 2024. All rights reserved.