首頁  >  文章  >  後端開發  >  如何可靠地確定 PHP 中的檔案是否已上傳?

如何可靠地確定 PHP 中的檔案是否已上傳?

DDD
DDD原創
2024-11-01 06:19:31823瀏覽

How to Reliably Determine if a File Was Uploaded in PHP?

在 PHP 中評估使用者檔案上傳

驗證使用者輸入時,確保檔案上傳的完整性至關重要。但是,某些表單可能允許可選上傳。在這種情況下,跳過尚未提交文件的使用者的驗證至關重要。

確定檔案上傳存在

要檢查檔案是否已上傳,請使用 $_FILES ['myfile']['size']

使用is_uploaded_file()

<code class="php">if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) {
    echo 'No upload';
}</code>

正如官方文件所解釋的,這個函數:

  • 確保檔案是透過HTTP POST方法上傳的。
  • 防止惡意嘗試存取意外檔案。

範例實作

考慮 FileUpload 類別中的範例:

<code class="php">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>

此方法先檢查 $_FILES 陣列是否為空。如果沒有,它會檢索上傳的檔案並使用 file_exists() 驗證其存在。最後,is_uploaded_file() 確認檔案是否確實上傳。

以上是如何可靠地確定 PHP 中的檔案是否已上傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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