【问题标题】:byte size of buffer (Javascript / Node) [duplicate]缓冲区的字节大小(Javascript / Node)[重复]
【发布时间】:2017-10-26 16:38:16
【问题描述】:

如何在 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',
      } 
  }

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

【问题讨论】:

    标签: javascript node.js size byte buffer


    【解决方案1】:

    类似file.data.byteLengthfile.data.toString().length 的东西会返回byte 的大小,除以1024 得到kb 的大小

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

    【讨论】:

    • 哇,我没想到会像.byteSize 这样简单。谢谢!
    • Buffer.byteLength(myFileBuffer) 是我在当前节点文档中看到的内容,尽管我确信当您发布它时这是准确的。链接现在也坏了。我认为myBuffer.lengthmyBuffer.data.toString().length 更理想,因为它避免了将Buffer 转换为字符串。与发布此解决方案时类似,Buffer.byteLength(myFileBuffer)myBuffer.length 本质上是相同的
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多