處理檔案上傳超過 PHP 的 post_max_size
使用 PHP 處理檔案上傳時,超過 post_max_size 限制可能會帶來挑戰。 upload_max_filesize 對於超大檔案傳回 0 的檔案大小,而 post_max_size 可能會導致您的腳本靜默失敗,且不會出現任何錯誤訊息。
如何偵測檔案大小限制錯誤
1。檢查超全域變數是否為空:
根據 PHP 文檔,如果 post 資料超過 post_max_size,則 $_POST 和 $_FILES 超全域變數將為空。您可以透過將查詢參數傳遞到僅在 $_POST 非空時設定的表單來偵測這一點。
if (isset($_GET['processed'])) { // Perform file upload processing } else { // Display blank form }
2.與$_SERVER['CONTENT_LENGTH'] 比較:
另一種方法是將CONTENT_LENGTH 標頭(不僅包含檔案資料還包含多部分序列)與post_max_size 設定進行比較。
if ($_SERVER['CONTENT_LENGTH'] > ini_get('post_max_size')) { // Error handling for oversized file }
注意:這些方法可讓您在不使用 PHP 的情況下偵測超大檔案產生錯誤。但是,調整 php.ini 檔案中的這些設定非常重要,以防止因大檔案而導致潛在的安全性問題或效能下降。
以上是如何偵測檔案上傳何時超出 PHP 的 `post_max_size` 限制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!