move_uploaded_file
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
move_uploaded_file — Verschiebt eine hochgeladene Datei an einen neuen Ort
Beschreibung
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
from
-
Der Dateiname der hochgeladenen Datei.
to
-
Das Ziel der zu verschiebenden Datei.
Rückgabewerte
Gibt bei Erfolg true
zurück.
Ist from
keine gültige Datei, wird keine Aktion
ausgeführt, und move_uploaded_file() gibt false
zurück.
Ist from
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
open_basedir. Allerdings werden
die Beschränkungen nur auf den to
Pfad
angewandt, um das Verschieben von hochgeladenen Dateien zu erlauben, bei
denen sich from
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.