move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

move_uploaded_fileVerschiebt eine hochgeladene Datei an einen neuen Ort

Beschreibung

move_uploaded_file ( string $filename , string $destination ) : bool

Diese Funktion prüft, dass die mit filename bezeichnete Datei eine gültige Upload-Datei ist (d.h., dass sie mittels PHP's HTTP POST Upload-Mechanismus hochgeladen wurde). Ist die Datei gültig, wird sie zum in destination bezeichneten Dateinamen verschoben.

Diese Art der Prüfung ist besonders wichtig, wo irgendeine Aktion mit hochgeladenen Dateien deren Inhalt dem User zugänglich machen könnte, oder gar anderen Usern auf dem selben System.

Parameter-Liste

filename

Der Dateiname der hochgeladenen Datei.

destination

Das Ziel der zu verschiebenden Datei.

Rückgabewerte

Gibt bei Erfolg TRUE zurück.

Ist filename keine gültige Datei, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück.

Ist filename eine gültige Datei, jedoch aus irgendeinem Grund nicht verschoben werden kann, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück. Zusätzlich wird eine Warnung ausgegeben.

Beispiele

Beispiel #1 Hochladen mehrerer Dateien

<?php
$uploads_dir 
'/uploads';
foreach (
$_FILES["pictures"]["error"] as $key => $error) {
    if (
$error == UPLOAD_ERR_OK) {
        
$tmp_name $_FILES["pictures"]["tmp_name"][$key];
        
// basename() kann Directory-Traversal-Angriffe verhindern;
        // weitere Validierung/Bereinigung des Dateinamens kann angebracht sein
        
$name basename($_FILES["pictures"]["name"][$key]);
        
move_uploaded_file($tmp_name"$uploads_dir/$name");
    }
}
?>

Anmerkungen

Hinweis:

move_uploaded_file() berücksichtigt sowohl Safe Mode wie auch open_basedir. Allerdings werden die Beschränkungen nur auf den destination Pfad angewandt, um das Verschieben von hochgeladenen Dateien zu erlauben, bei denen sich filename mit den Beschränkungen im Konflikt befinden könnte. move_uploaded_file() gewährleistet die Sicherheit dieser Operation dadurch, dass nur diejenigen Dateien verschoben werden dürfen, die mit PHP hochgeladen wurden.

Warnung

Existiert die Zieldatei bereits, wird sie überschrieben.

Siehe auch