有没有什么办法让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