is_uploaded_file
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
is_uploaded_file — Prüft, ob die Datei mittels HTTP-POST upgeloadet wurde
Beschreibung
$filename
): bool
Gibt true
zurück, wenn die Datei filename
mittels HTTP-POST hochgeladen wurde. Dies ist hilfreich, um sicherzustellen,
dass kein böswilliger Nutzer versucht hat, das Skript zu überlisten, indem
er es Dateien bearbeiten lässt, die es gar nicht bearbeiten sollte,
zum Beispiel /etc/passwd.
Diese Prüfung ist insbesondere dort interessant, wo irgendeine Aktion mit upgeloadeten Dateien deren Inhalt dem Nutzer (oder sogar anderen Nutzern auf dem gleichen System) zugänglich machen könnte.
Um korrekt arbeiten zu können, benötigt die Funktion is_uploaded_file() einen Parameter wie $_FILES['userfile']['tmp_name']. Der Name der upgeloadeten Datei auf dem Anwenderrechner $_FILES['userfile']['name'] funktioniert nicht.
Parameter-Liste
-
filename
-
Der zu prüfende Dateiname.
Rückgabewerte
Gibt bei Erfolg true
zurück. Bei einem Fehler wird false
zurückgegeben.
Beispiele
Beispiel #1 is_uploaded_file()-Beispiel
<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "Datei ". $_FILES['userfile']['name'] ." erfolgreich upgeloadet.\n";
echo "Anzeige des Inhalts\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo "Mögliche Dateiupload-Attacke: ";
echo "Dateiname '". $_FILES['userfile']['tmp_name'] . "'.";
}
?>
Siehe auch
- move_uploaded_file() - Verschiebt eine hochgeladene Datei an einen neuen Ort
- $_FILES
- Siehe Steuerung von Dateiuploads für ein einfaches Anwendungsbeispiel.