Domanda Ottieni la dimensione della richiesta POST in PHP


C'è un modo per ottenere dimensioni del corpo della richiesta POST in PHP?


12
2017-09-01 09:21


origine


risposte:


Semplice come:

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

Tieni presente che $ _SERVER ['CONTENT_LENGTH'] è impostato solo nelle richieste HTTP tramite il metodo POST. Questo è il valore grezzo dell'intestazione Content-Length. Vedere: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13

Nel caso di upload di file, se si desidera ottenere il file dimensione totale dei file caricati, dovresti scorrere gli elementi $ _FILE per sommare ogni $ file ['size']. La dimensione totale esatta non corrisponde al valore di Contenuto-Lunghezza non elaborato a causa del sovraccarico di codifica dei dati POST.

Si noti inoltre che per errori di file, dovresti controllare il codice $ file ['errore'] di ogni elemento $ _FILES. Ad esempio, i caricamenti parziali restituiranno l'errore UPLOAD_ERR_PARTIAL e i caricamenti vuoti restituiranno UPLOAD_ERR_NO_FILE. Vedere la documentazione sugli errori di caricamento del file nel manuale PHP.


31
2017-07-15 19:10



La mia ipotesi è, è nel $_SERVER['CONTENT_LENGTH'].

E se ne hai bisogno per il rilevamento degli errori, dai un'occhiata $_FILES['filename']['error'].


5
2017-09-01 09:24



Se stai cercando di capire se un caricamento di file è fallito, dovresti usare la gestione degli errori del file PHP come mostrato nel link sottostante. Questo è il modo più affidabile per rilevare errori di caricamento dei file:
http://us3.php.net/manual/en/features.file-upload.errors.php

Se hai bisogno della dimensione di una richiesta POST senza alcun caricamento di file, dovresti essere in grado di farlo con qualcosa del genere:

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

4
2017-09-01 12:54



Questo potrebbe funzionare:

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

2
2017-09-01 13:29



Immagino tu stia cercando $HTTP_RAW_POST_DATA


0
2017-09-01 09:26