(PHP 4 >= 4.0.3, PHP 5, PHP 7)
move_uploaded_file — Déplace un fichier téléchargé
$filename
, string $destination
)
S'assure que le fichier filename
est un fichier
téléchargé par HTTP POST. Si le fichier est valide, il est déplacé
jusqu'à destination
.
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.
filename
Le nom du fichier téléchargé.
destination
La destination du fichier déplacé.
Retourne TRUE
en cas de succès.
Si filename
n'est pas valide, rien ne se passe,
et move_uploaded_file() retournera FALSE
.
Si filename
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 les restrictions liées au safe mode et à l'open_basedir. Cependant, les restrictions sont placées uniquement sur le paramètre
destination
qui permet le déplacement des fichiers chargés dans lesquelsfilename
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é.