在PHP中获取POST请求的大小

And*_* M. 17 php size post

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

sco*_*fey 37

很简单:

$size = (int) $_SERVER['CONTENT_LENGTH'];
Run Code Online (Sandbox Code Playgroud)

请注意,$_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手册中的文件上传错误文档.)

  • $size = (int) $_SERVER['CONTENT_LENGTH']; 这是否以字节为单位给出大小? (4认同)

Mic*_*ker 5

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

如果您需要进行错误检测,请查看$_FILES['filename']['error'].


Kei*_*Jr. 5

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

如果您需要一个POST请求的大小而没有任何文件上传,那么您应该可以使用以下方法:

$request = http_build_query($_POST);
$size = strlen($request);
Run Code Online (Sandbox Code Playgroud)