我正在编写一个 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){})
如果你使用的是一个真正老版本的Node,Buffer.from
方法不存在,你必须使用非常不安全的 new
构造函数。请考虑升级你的Node实例以支持 Buffer.from
。
new Buffer
已被弃用,取而代之的是Buffer.from(...)
。您可以在此处阅读更多信息:https://nodejs.org/api/buffer.html#buffer_class_method_buffer_from_object_offsetorencoding_length - Chasen Bettinger