是否可以使用JavaScript确定表单发送的POST数据的大小(以字节为单位)? 这个想法是在提交之前验证表单大小以避免关于post_max_size的php错误
答案 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"进行比较值并在请求之前抛出错误。
再见:)