(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
move_uploaded_file — Déplace un fichier téléchargé
$from
, string $to
): bool
S'assure que le fichier from
est un fichier
téléchargé par HTTP POST. Si le fichier est valide, il est déplacé
jusqu'à to
.
Ce type de vérification est spécialement important s'il est possible que les fichiers téléchargés révèlent leur contenu à l'utilisateur, ou même aux utilisateurs du même système.
from
Le nom du fichier téléchargé.
to
La destination du fichier déplacé.
Retourne true
en cas de succès.
Si from
n'est pas valide, rien ne se passe,
et move_uploaded_file() retournera false
.
Si from
est un fichier téléchargé,
mais que pour une raison quelconque, il ne peut être déplacé,
rien ne se passe, et move_uploaded_file()
retourne false
. De plus, une alerte sera affichée.
Exemple #1 Téléchargement de plusieurs fichiers
<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() peut empêcher les attaques de système de fichiers;
// la validation/assainissement supplémentaire du nom de fichier peut être approprié
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>
Note:
move_uploaded_file() n'est pas affectée par l'open_basedir. Cependant, les restrictions sont placées uniquement sur le paramètre
to
qui permet le déplacement des fichiers chargés dans lesquelsfrom
peut entrer en conflit avec ces restrictions. move_uploaded_file() permet de s'assurer de la sécurité de cette opération en autorisant le déplacement des seuls fichiers chargés via PHP.
Si le fichier de destination existe déjà, il sera écrasé.