缓冲区的字节大小(Javascript / Node)

时间:2017-10-26 16:38:16

标签: javascript node.js size byte buffer

如何在javascript中获取缓冲图像的大小(以字节为单位)?我不被允许信任客户端的文件大小,并且需要在后端验证作为上载验证的一部分。我的设置如下:

1-我在客户端上传文件并从React组件发送到Node:

      fileUpload() {
          const url = '/.../...'
          const formData = new FormData()
          formData.append('file', this.state.file)
          formData.append('actualSize', this.state.file.size) //not allowed to use this.
          const config = { headers: { 'content-type': 'multipart/form-data' } }
          axios.post(url, formData, config)
      }

2-使用一些中间件,我在Node中接收数据作为对象:

  { 
      file: { 
            name: 'test',
            data: <Buffer 12 50 4e ... >,
            encoding: '7bit',
            mimetype: 'image/png',
      } 
  }

如何测量缓冲区的字节大小?提前谢谢!

1 个答案:

答案 0 :(得分:3)

file.data.byteLengthfile.data.toString().length之类的内容将返回byte中的大小,除以1024以获得kb中的大小

https://nodejs.org/api/buffer.html#buffer_class_method_buffer_bytelength_string_encoding