有什麼辦法可以在PHP中獲取POST請求的大小?獲取POST請求的大小在PHP中
回答
我的猜測是,它在$_SERVER['CONTENT_LENGTH']
。
如果您需要錯誤檢測,請查看$_FILES['filename']['error']
。
我猜你正在尋找$HTTP_RAW_POST_DATA
嗯......但是你不需要數據就可以知道它的大小,是嗎? –
謝謝,但$ HTTP_RAW_POST_DATA不適用於enctype =「multipart/form-data」。我需要使用multipart/form-data來發送文件。 –
**警告**此功能在PHP 5.6.0中已被棄用,並且自PHP 7.0.0起已刪除。 [PHP的鏈接](http://php.net/manual/en/reserved.variables.httprawpostdata.php) –
如果你想找出一個文件上傳是否沒有失敗,你應該使用PHP文件錯誤處理在下面的鏈接中。這是爲了檢測文件上傳錯誤最可靠的方法:
http://us3.php.net/manual/en/features.file-upload.errors.php
如果你需要一個POST請求沒有任何文件上傳大小,你應該能夠像這樣這樣做:
$request = http_build_query($_POST);
$size = strlen($request);
否則,如果他'只是'想要的大小,你可以通過使用$ _FILES數組= => $ _FILES ['nameoffile'] ['size'] – Jakub
這可能會實現:
$bytesInPostRequestBody = strlen(file_get_contents('php://input'));
// This does not count the bytes of the request's headers on its body.
在PHP5.6之前,此操作可能會清除流,導致它只允許讀取一次:[docs](http://php.net/manual/en/wrappers .php.php)。所以你會看到它的長度,但它會是空的 – vladkras
簡單:
$size = (int) $_SERVER['CONTENT_LENGTH'];
請注意,$ _SERVER ['CONTENT_LENGTH']僅通過POST方法在HTTP請求中設置。這是Content-Length標題的原始值。請參閱:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
在文件上傳的情況下,如果你想上傳的文件的總規模,你應該遍歷$ _FILE元素,總結每個$文件[「大小」]。由於POST數據的編碼開銷,確切的總大小與原始Content-Length值不匹配。
另請注意,文件錯誤,你應該檢查$文件[「錯誤」]每個$ _FILES元素的代碼。例如,部分上傳將返回錯誤UPLOAD_ERR_PARTIAL,並且空的上傳將返回UPLOAD_ERR_NO_FILE。請參閱PHP手冊中的文件上傳錯誤文檔。
- 1. 獲取請求的大小
- 2. googleaapengine中的URL獲取請求大小
- 3. 如何在POST請求中獲取GET和POST請求參數?
- 4. 使用Javascript獲取POST請求的大小
- 5. PHP ::獲取POST請求內容
- 6. 獲取文件大小,上傳和POST請求
- 7. Backbone.js在POST請求中獲取數據
- 8. Apache對POST請求大小的限制
- 9. lua nginx請求的POST大小
- 10. Node.js - 控制POST請求的大小
- 11. POST請求無法獲取
- 12. 如何在PHP中獲取post請求的引用URL?
- 13. Java HTTP請求:獲取內容大小
- 14. 獲取大小通過AJAX請求
- 15. 以PHP格式獲取http請求的字節大小
- 16. PHP中的HTTP POST請求
- 17. 在restler php的POST請求
- 18. 計算HTTPS POST請求大小
- 19. 在PHP中從Ajax POST請求獲取數據?
- 20. 如何在PHP中獲取或POST多部分數據請求
- 21. 從請求中獲取POST數據
- 22. 從POST請求中獲取數據
- 23. iPhone - PHP POST請求
- 24. POST請求到PHP
- 25. Angular:如何在post/put請求成功後獲取請求?
- 26. 無法獲取的jQuery AJAX POST請求
- 27. 獲取POST請求的響應
- 28. Solr POST請求返回400. Java。當請求的大小過大時
- 29. 從php curl post請求中獲取標題信息
- 30. 如何在PHP POST請求後獲取HTTP響應頭?
我正在上傳服務器上的大文件以及其他字段。但是如果我中止它的一部分請求將會丟失,所以我需要將請求主體的實際大小與來自Content-Length頭部的值進行比較,以確保文件上傳不會中止。 –
'$ _SERVER ['CONTENT_LENGTH']'當然包含頭部的值。我認爲確保PHP符合收到的實際數據是PHP的責任。也許'$ _FILES ['file'] ['error']'有一些提示嗎? –
如果您嘗試檢測失敗的文件上傳,您應該按照它在我的文章中顯示的方式進行操作,而不是計算字節數。 –