我正在编写 sails.js 应用程序。我正在编写一个 API 来接受文件并对其进行加密。
var file = req.body('myFile');
var fileBuffer = convertToBuffer(file);
如何将文件转换为缓冲区?
看起来您有一个代表文件正文的字符串。
你只需用它创建一个新缓冲区。
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
2024 年,这就是我正在做的事情 – 这让 Typescript 感到高兴。
首先从文件创建一个 ArrayBuffer,然后将 ArrayBuffer 传递给
Buffer.from
,如下所示
const arrayBuffer = await file.arrayBuffer()
const buffer = Buffer.from(arrayBuffer)