Heim >Backend-Entwicklung >PHP-Tutorial >Warum erhalte ich beim Hochladen von Dateien in PHP die Fehlermeldung „Undefinierte Variable: HTTP_POST_FILES'?

Warum erhalte ich beim Hochladen von Dateien in PHP die Fehlermeldung „Undefinierte Variable: HTTP_POST_FILES'?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-10 01:57:09340Durchsuche

Why Am I Getting the

Eine Datei mit PHP hochladen: Fehlerbehebung beim Fehler „Undefinierte Variable: HTTP_POST_FILES“

Das Hochladen von Dateien auf einen Server mit PHP kann ein einfacher Vorgang sein . Es ist jedoch wichtig, alle Fehler zu beheben, die während des Prozesses auftreten können.

Problem:
Beim Versuch, eine Datei mit PHP hochzuladen, tritt ein Fehler auf: „Hinweis: Undefinierte Variable: HTTP_POST_FILES".

Ursache:
Die Variable $HTTP_POST_FILES verweist zum globalen Array, das hochgeladene Dateiinformationen speichert. Es ist jedoch seit PHP 4.1.0 veraltet und wird nicht zur Verwendung empfohlen.

Lösung:
Moderne PHP-Versionen erwarten eine andere Struktur für den Zugriff auf hochgeladene Dateidaten. Verwenden Sie anstelle von $HTTP_POST_FILES die folgende Methode:

$_FILES["file_name"]["key"]

Wobei:

  • Dateiname ist der Name des Eingabefelds, in dem die Datei ausgewählt wurde.
  • Der Schlüssel ist der spezifische Aspekt der Datei, auf die zugegriffen wird (z. B. „Name“, „Typ“, „Größe“, "tmp_name").

Beispielcode:

Der folgende verbesserte PHP-Code entspricht den Best Practices für das Hochladen von Dateien:

$target_dir = "upload/";
$target_file = $target_dir . basename($_FILES["filename"]["name"]);
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
$allowedTypes = ['jpg', 'png'];

if (isset($_POST["submit"])) {
    // Check file type
    if (!in_array($imageFileType, $allowedTypes)) {
        echo "Type is not allowed";
    }
    // Check if file already exists
    elseif (file_exists($target_file)) {
        echo "Sorry, file already exists.";
    }
    // Check file size
    elseif ($_FILES["filename"]["size"] > 5000000) {
        echo "Sorry, file is too large.";
    } else {
        // Upload file
        if (move_uploaded_file($_FILES["filename"]["tmp_name"], $target_file)) {
            echo "File uploaded successfully.";
        }
    }
}

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Hochladen von Dateien in PHP die Fehlermeldung „Undefinierte Variable: HTTP_POST_FILES'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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