首頁 >後端開發 >php教程 >如何偵測檔案上傳何時超出 PHP 的 `post_max_size` 限制?

如何偵測檔案上傳何時超出 PHP 的 `post_max_size` 限制?

Susan Sarandon
Susan Sarandon原創
2024-11-21 09:34:12899瀏覽

How to Detect When File Uploads Exceed PHP's `post_max_size` Limit?

處理檔案上傳超過 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn