我得到的是字节缓冲区文件,不能使用fs.stat()方法。因此,我尝试使用buf.length,但该长度是指分配给缓冲区对象的内存量而不是实际内容大小。例如,我有一个大小为22,449字节的文件。buf.length返回39804。
你需要使用byteLength
方法:
var buff = fs.readFileSync(__dirname + '/test.txt');
console.log(Buffer.byteLength(buff));
对于节点0.10.21,您可以尝试以下操作:
更新
buffer.toSTring()
不安全,因为缓冲区用于存储二进制数据,toString()
将尝试进行字符编码转换,这将破坏二进制数据。
console.log(buff.toString().length);
fs
,而是使用另一个库返回了一个字节数组,我需要找到content-length
的值。 - BugHunterUKBuffer.from("€").length // is 3
,则buf.toString().length可能会有所偏差。 - pspiBuffer.byteLength(buff)
和buff.toString().length
的值可能不同,在使用form-data
上传文件时可能会出现问题。 - Gompro