Wie kann man zuverlässig feststellen, ob eine Datei in PHP hochgeladen wurde?

DDD
Freigeben: 2024-11-01 06:19:31
Original
823 Leute haben es durchsucht

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

Bewertung von Benutzerdatei-Uploads in PHP

Bei der Validierung von Benutzereingaben ist die Sicherstellung der Integrität der Datei-Uploads von entscheidender Bedeutung. Einige Formulare erlauben jedoch möglicherweise optionale Uploads. In solchen Fällen ist es wichtig, die Validierung für Benutzer zu überspringen, die keine Dateien übermittelt haben.

Bestimmen der Datei-Upload-Präsenz

Um zu überprüfen, ob eine Datei hochgeladen wurde, verwenden Sie $_FILES ['myfile']['size'] <= 0 ist nicht zuverlässig. Stattdessen bietet die Funktion is_uploaded_file() einen genaueren Indikator.

Verwendung von is_uploaded_file()

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

Wie in der offiziellen Dokumentation erklärt, ist diese Funktion:

  • Stellt sicher, dass eine Datei über die HTTP-POST-Methode hochgeladen wurde.
  • Schützt vor böswilligen Versuchen, auf unbeabsichtigte Dateien zuzugreifen.

Beispielimplementierung

Betrachten Sie dieses Beispiel aus einer FileUpload-Klasse:

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;
}

Diese Methode prüft zunächst, ob das Array $_FILES leer ist. Wenn nicht, ruft es die hochgeladene Datei ab und validiert ihre Existenz mit file_exists(). Abschließend bestätigt is_uploaded_file(), ob die Datei tatsächlich hochgeladen wurde.

Das obige ist der detaillierte Inhalt vonWie kann man zuverlässig feststellen, ob eine Datei in PHP hochgeladen wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!