執行表單驗證時,驗證使用者是否已上傳檔案至關重要,尤其是當上傳是可選的時。忽視這一點可能會導致不必要的驗證工作,從而可能危及安全性。
要確定檔案是否已上傳,您可以使用 is_uploaded_file() 函數。如果指定的檔案是透過 HTTP POST 請求上傳的,則此函數傳回 TRUE。這是防止惡意行為者利用腳本對他們不應存取的檔案進行操作的關鍵步驟。
<code class="php">if (!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) { echo 'No upload'; }</code>
此程式碼段檢查名為 myfile 的檔案是否存在,然後確認其上傳狀態。如果任一條件失敗,則表示沒有上傳檔案。
在更複雜的場景中,您可以使用類別來封裝檔案上傳流程。以下是一個範例:
<code class="php">class FileUpload { // ... (other methods here) public function fileUploaded() { if (empty($_FILES)) { return false; } $this->file = $_FILES[$this->formField]; if (!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])) { $this->errors['FileNotExists'] = true; return false; } return true; } }</code>
此類提供了一種便捷的方法來確定文件的存在和上傳狀態,並在內部處理必要的檢查。
以上是如何驗證檔案是否是用 PHP 上傳的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!