Heim >Backend-Entwicklung >PHP-Tutorial >Warum erhalte ich beim Hochladen von Dateien in PHP die Fehlermeldung „Undefinierte Variable: HTTP_POST_FILES'?
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:
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!