获取在PHP中POST请求的大小(Get size of POST-request in PHP)

2019-06-21 08:49发布

有没有什么办法让POST请求体的大小在PHP?

Answer 1:

就是这么简单:

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

需要注意的是$_SERVER['CONTENT_LENGTH']当HTTP请求方法是POST时,才设置(未GET)。 这是的原始值Content-Length头,如在规定的RFC 7230 。

在文件上传的情况下,如果你想上传的文件大小总和 ,您应该遍历$_FILE阵列总结每个$file['size'] 确切的总规模可能不会在原匹配Content-Length因POST数据的编码开销值。 (另请注意,你应该检查使用上传错误$file['error']每一个码$_FILES元素,如UPLOAD_ERR_PARTIAL的部分上传或UPLOAD_ERR_NO_FILE空上传。参见文件上传错误文档中的PHP手册。)



Answer 2:

我的猜测是,它在$_SERVER['CONTENT_LENGTH']

如果你需要的是对错误检测,窥视到$_FILES['filename']['error']



Answer 3:

如果你想找出一个文件上传是否没有失败,你应该使用PHP文件的错误处理如在下面的链接中。 这是为了检测文件上传错误最可靠的方法:
http://us3.php.net/manual/en/features.file-upload.errors.php

如果你需要没有任何文件上传 POST请求的大小,你应该能够像这样这样做:

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


Answer 4:

这可能会实现:

$bytesInPostRequestBody = strlen(file_get_contents('php://input'));
// This does not count the bytes of the request's headers on its body.


Answer 5:

我猜你正在寻找$HTTP_RAW_POST_DATA



文章来源: Get size of POST-request in PHP
标签: php post size