使用javascript以字节为单位的表单大小?

时间:2017-08-28 20:49:35

标签: javascript

是否可以使用JavaScript确定表单发送的POST数据的大小(以字节为单位)? 这个想法是在提交之前验证表单大小以避免关于post_max_size的php错误

1 个答案:

答案 0 :(得分:1)

正如@ j08691所说,检查服务器端以避免修改会更好。

但是,您可以通过获取要发送的每个数据的对象/变量类型来计算所有字节客户端=>服务器并总结它。

这很长,不是一个好习惯,但你可以做到。

const typeSizes = {
    'undefined': () => 0,
    'boolean': () => 4,
    'number': () => 8,
    'string': (item) => 2 * item.length,
    'object': (item) => Object.keys(item).reduce(
        (sum, key) => sum + sizeOf(key) + sizeOf(item[key]), 0
    ) };

const sizeOf = (value) => value === null ? 0 : typeSizes[typeof value](value);

这段代码为您提供了一个名为sizeOf的函数,它为您提供了不同类型数据的大小。

知道您可以将总数与" post_max_size"进行比较值并在请求之前抛出错误。

再见:)