當連接配接速度較慢的遠端Web用戶端無法發送帶有multipart / form-data内容的完整POST請求但
PHP仍然使用部分接收的資料來填充$_POST數組時,我遇到了問題.是以,$_POST數組中的一個值可能不完整,可能會丢失更多值.我試圖在
Apache list中首先提出相同的問題并得到
an answer,Apache沒有緩沖請求體并将其作為一個傳遞給PHP子產品
巨大的斑點.
這是我的示例POST請求:
POST /test.php HTTP/1.0
Connection: close
Content-Length: 10000
Content-Type: multipart/form-data; boundary=ABCDEF
--ABCDEF
Content-Disposition: form-data; name="a"
A
--ABCDEF
您可以看到Content-Length是10000位元組,但我隻發送一個var a = A.
PHP腳本是:
我的請求的其餘部分Web伺服器等待大約10秒鐘(但我不發送任何内容),然後傳回此響應:
HTTP/1.1 200 OK
Date: Wed, 27 Nov 2013 19:42:20 GMT
Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/5.4.4-14+deb7u3
Vary: Accept-Encoding
Content-Length: 23
Connection: close
Content-Type: text/html
Array
(
[a] => A
)
是以這是我的問題:如何在PHP中驗證郵件請求是否已完全收到? $_SERVER [‘CONTENT_LENGTH’]會從請求标頭顯示10000,但有沒有辦法檢查收到的實際内容長度?