如何在node.js中获取base64字符串的字节长度?

时间:2018-10-20 07:25:19

标签: node.js

我想计算以base64编码的字符串形式接收的图像文件的大小,例如:

'data:image/png;base64,aBdiVBORw0fKGgoAAA...'

,以确保文件不大于特定大小,例如5MB。

如何在node.js中实现?

我见过类似的问题here,但在得到以下消息后无法在我的节点应用中应用答案:

SyntaxError: Unexpected token :

2 个答案:

答案 0 :(得分:2)

实际上,没有太多内容。 如果您知道Base64映像的大小,则只需将其除以1.37。 由于Base64算法是线性的,因此结果也是。 有关更多信息,请参见here

要计算您已经拥有的字符串大小,可以使用this solution

function byteCount(s) {
    return encodeURI(s).split(/%..|./).length - 1;
}

并将结果除以1.37。

答案 1 :(得分:1)

您需要删除数据...部分

const Item = props => (
  <li>
    <input type="checkbox" checked={props.done} onChange={props.event} />
    <span>{props.name}</span>
  </li>
)


class Foo extends React.Component {
  state = {
    items: [
      { id: 0, name: 'Item 1', done: false },
      { id: 1, name: 'Item 2', done: false },
      { id: 2, name: 'Item 3', done: false }
    ]
  }

  toggleDone = (e) => {
    // ???
  }

  render() {
    return(
      <ul>
        {this.state.items.map(item => (

          <Item
            key={items.id}
            name={item.name}
            done={item.done}
            event={this.toggleDone} />

        ))}
      </ul>
    )
  }
}