获取 PHP 中 POST 请求的大小

2022-08-30 20:24:52

有没有办法在PHP中获取POST请求正文的大小?


答案 1

简单如下:

$size = (int) $_SERVER['CONTENT_LENGTH'];

请注意,仅当 HTTP 请求方法是 POST(而不是 GET)时,才设置该值。这是 RFC 7230 中指定的标头的原始值。$_SERVER['CONTENT_LENGTH']Content-Length

在文件上传的情况下,如果要获取上传文件的总大小,则应循环访问数组以对每个 .由于 POST 数据的编码开销,确切的总大小可能与原始值不匹配。(另请注意,您应该使用每个元素的代码检查上传错误,例如部分上传或空上传。请参阅 PHP 手册中的文件上传错误文档。$_FILE$file['size']Content-Length$file['error']$_FILESUPLOAD_ERR_PARTIALUPLOAD_ERR_NO_FILE


答案 2

如果您试图确定文件上传是否失败,则应使用PHP文件错误处理,如下面的链接所示。这是检测文件上传错误的最可靠方法:
http://us3.php.net/manual/en/features.file-upload.errors.php

如果您需要在没有任何文件上传的情况下获得POST请求的大小,您应该能够使用如下方式执行此操作:

$request = http_build_query($_POST);
$size = strlen($request);

推荐